在 Word 和 PowerPoint 中,您只能使用 VBA 为形状指定名称(与 Excel 相比,您可以在编辑栏中执行此操作)。
Word 不强制形状具有唯一名称,因此可以有两个形状都命名为Text Box 2
. ActiveDocument.Shapes
您也可以通过它们在集合中的索引位置来引用形状。
一旦确定了Shape
需要处理的内容,您就可以简单地操作该.TextFrame.TextRange.Text
属性:
Sub Test()
Dim shp As Shape
Dim str As String
For Each shp In ActiveDocument.Shapes
str = "My name is " & shp.Name
str = str & vbNewLine & "My EditID is " & shp.EditID
shp.TextFrame.TextRange.Text = str
Next
End Sub
您可能会考虑的另一件事是AlternativeText
为每个形状添加一个属性。当然,这并不能解决“非唯一性”问题,但您可以使用它(或CustomerData/CustomXMLParts
将一些元数据分配给形状,作为识别和区分它们的进一步手段。