Image 用字符串/文本占位符替换Word文档中的图像
我有一个2010年Word文档和一些图像。我已经一个接一个地导出了图像。由于文档目的地的格式,我需要删除所有图像,并在图像所在的位置保留一个文本块(类似于[[Image1.jpg]]) 图像的名称实际上并不重要。我只需要把图像换成文本。我对VBA在Word中是完全陌生的 这里有一些其他代码来调整图像的大小,是否可以修改此代码以删除图像并在该位置插入一些文本Image 用字符串/文本占位符替换Word文档中的图像,image,vba,ms-word,Image,Vba,Ms Word,我有一个2010年Word文档和一些图像。我已经一个接一个地导出了图像。由于文档目的地的格式,我需要删除所有图像,并在图像所在的位置保留一个文本块(类似于[[Image1.jpg]]) 图像的名称实际上并不重要。我只需要把图像换成文本。我对VBA在Word中是完全陌生的 这里有一些其他代码来调整图像的大小,是否可以修改此代码以删除图像并在该位置插入一些文本 Dim oShp As Shape Dim oILShp As InlineShape For Each oShp In ActiveDo
Dim oShp As Shape
Dim oILShp As InlineShape
For Each oShp In ActiveDocument.Shapes
With oShp
.Height = AspectHt(.Width, .Height, _
CentimetersToPoints(11))
.Width = CentimetersToPoints(11)
End With
Next
For Each oILShp In ActiveDocument.InlineShapes
With oILShp
.Height = AspectHt(.Width, .Height, _
CentimetersToPoints(11))
.Width = CentimetersToPoints(11)
End With
Next
End Sub
两种可能的解决方案仅适用于
InlineShapes
(根据可以接受的注释)
解决方案1恒定替换文本:
Sub ReplaceInlineShapes_constant_names()
Dim oILShp As InlineShape
For Each oILShp In ActiveDocument.InlineShapes
'insert text in place where InlineShape is located
ActiveDocument.Range(oILShp.Range.Start, oILShp.Range.End).Text = "[Image.Jpg]"
'delete picture is not needed- it was simply replaced with text
Next
End Sub
解决方案2索引在以下范围内的替换文本:
Sub ReplaceInlineShapes_WithIndex()
Dim oILShp As InlineShape
Dim ILShpIndex As Integer
For Each oILShp In ActiveDocument.InlineShapes
ILShpIndex = ILShpIndex + 1
'insert text in place where InlineShape is located
ActiveDocument.Range(oILShp.Range.Start, oILShp.Range.End).Text = _
"[Image" & ILShpIndex & ".Jpg]"
'delete picture is not needed- it was simply replaced with text
Next
End Sub
问题是您也想替换
形状
,但形状可能位于文档文本中的任何位置-上方、中间、侧面等。在这种情况下,您希望将文本放置在何处?我认为好消息是,如果我们谈论的是页边空白以外的图像,则没有形状。所有图像都在边距内,并且正在使用文本扭曲,因此现有文本不应干扰实际图像。因此,让我们假设只有InlineShapes
。还有一些问题-您想添加包含[image.jpg]信息的文本块,还是想像[image1.jpg]、[image2.jpg]等那样计算并增加每个文本块的数量?由于我是通过保存为HTML文件来获取文档的图像,因此不需要增加,这将创建一个包含图像的子文件夹。但是如果图像被改变(颜色、大小等),它会保存另一个图像。因此,文档可以有3个嵌入图像,但HTML子文件夹有6个,因为我在Word中调整了它们的大小。这些图像用于上传到Wiki,因此占位符仅用于识别图像位置,而不是文字图像文件名。谢谢,为了计算预期的图像数量,我喜欢选项2。