我试图先构建一个简单的矩形,然后将构建的形状添加到Word中的第一个节标题(主要)。但是似乎没有用于执行此操作的API。相反,似乎我必须在标题内部重新创建一个新形状。
用于在标题内创建形状的普通代码(“添加”和“创建”操作组合到一个API“ AddShape”中):
Set hf = doc.Sections(1).Footers(wdHeaderFooterPrimary)
Set shp = hf.shapes.AddShape(msoShapeRectangle, 0, 0, 50, 50)
我想做的是这样的(伪代码):
Set hf = doc.Sections(1).Footers(wdHeaderFooterPrimary)
Set shp = MyFunctionForBuildingAShapeThatIAlreadyUseElseWhere
hf.Shapes.Add(shp)
这种操作可行吗?我试图不重复用于构建形状的代码,因为我使用该代码来构建在标题外部使用的形状。谢谢。
答案 0 :(得分:1)
由于形状相同,只需指向原始锚点,然后使用.FormattedText方法将其复制到标头中。例如:
Dim doc As Document, Rng As Range
Set doc = ActiveDocument
With doc
Set Rng = .Sections(1).Headers(wdHeaderFooterPrimary).Range
Rng.Collapse wdCollapseStart
Rng.FormattedText = .Shapes(1).Anchor.FormattedText
End With