我有一个很长的MS Word 2007文档,我偶尔需要替换所有嵌入的图形。
这些更改非常简单且足够常规,我可以写一个VBA宏来为我做这些更新。
但是,我遇到了一个非常基本的问题:我无法弄清楚如何在VBA中选择嵌入式图形。Word中的“记录宏”功能由于某种原因不记录图形的更改,并且所有在线教程都与Excel中的图形进行交互。
有人可以发布一些简短的示例代码(或链接解释),显示与Word中的嵌入式图形的一些基本交互吗?
我有一个很长的MS Word 2007文档,我偶尔需要替换所有嵌入的图形。
这些更改非常简单且足够常规,我可以写一个VBA宏来为我做这些更新。
但是,我遇到了一个非常基本的问题:我无法弄清楚如何在VBA中选择嵌入式图形。Word中的“记录宏”功能由于某种原因不记录图形的更改,并且所有在线教程都与Excel中的图形进行交互。
有人可以发布一些简短的示例代码(或链接解释),显示与Word中的嵌入式图形的一些基本交互吗?
Answers:
这适用于嵌入式图像(jpg等)或嵌入式图表:
'Kill 'em all: pictures, OLE object, hyperlinks, ActiveX controls, etc.
Sub DeleteAllShapes()
Dim shp As InlineShape
For Each shp In ActiveDocument.InlineShapes
shp.Delete
Next shp
End Sub
还有一个“Shape”对象(和Shapes集合),它更通用地引用所有形状 - 无论它们是否是内联的。一个形状可以是很多东西 - 使用Type属性返回内联形状的类型:图片,链接图片,嵌入式OLE对象,链接OLE对象,ActiveX控件等。如果您有许多不同的类型并需要区分它们,您可以用以下内容包围您的删除:
If shp.Type = wdInlineShapeEmbeddedOLEObject Then
shp.Delete
End If
添加新图片的一种方法:
' Insert a picture at the current insertion point.
Sub InsertPicture(ByVal FileName As String)
Selection.InlineShapes.AddPicture _
FileName:=FileName, _
SaveWithDocument:=True
End Sub