VBA Word将现有形状添加到主标题

时间:2018-07-30 18:27:03

标签: vba ms-word

我试图先构建一个简单的矩形,然后将构建的形状添加到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)

这种操作可行吗?我试图不重复用于构建形状的代码,因为我使用该代码来构建在标题外部使用的形状。谢谢。

1 个答案:

答案 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