在Word 2007中使用VBA与图形进行交互


1

我有一个很长的MS Word 2007文档,我偶尔需要替换所有嵌入的图形。

这些更改非常简单且足够常规,我可以写一个VBA宏来为我做这些更新。

但是,我遇到了一个非常基本的问题:我无法弄清楚如何在VBA中选择嵌入式图形。Word中的“记录宏”功能由于某种原因不记录图形的更改,并且所有在线教程都与Excel中的图形进行交互。

有人可以发布一些简短的示例代码(或链接解释),显示与Word中的嵌入式图形的一些基本交互吗?

Answers:



2

这适用于嵌入式图像(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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.