在 Microsoft Word 2010 中编写 VBA(没人喜欢的工作)。我正在尝试将文本框的垂直位置固定到文档中的某个位置,以便在之前添加文本时,文本框保持其相对位置(即,如果在其链接到的位置之前插入文本,则向下移动)。
我的代码是
ActiveDocument.Shapes.AddTextbox(msoTextOrientationHorizontal, 372, 400, 120, 120).Select
With Selection
.ShapeRange.TextFrame.TextRange.Select
.Collapse
.TypeText Text:="Text box placement test"
With .ShapeRange
.Select
.RelativeHorizontalPosition = wdRelativeHorizontalPositionColumn
.RelativeVerticalPosition = wdRelativeVerticalPositionPage
...
我认为关键是最后一个属性,RelativeVerticalPosition。
我尝试将其更改为 wdRelativeVerticalPositionLine:这适用于第一段(即文本框固定在文本中的位置,因此如果在正确移动之前添加文本):但是,对于第二段和后面的段落,垂直位置是完全错误。
我曾尝试更改 LockAnchor 属性,但这并没有改变。
令人沮丧的是,这可以手动完成(页面布局、排列组、环绕文本、更多布局选项、位置、移动对象,文本 = 选中)但 Word 不允许我在更改文本框属性的位置录制宏,所以我找不到使它起作用的设置组合。
有什么建议么?或者这只是使用 20 多年旧代码的后果之一?