【问题标题】:VBA in Word 2010: how do I fix the relative position of a TextBox?Word 2010 中的 VBA:如何修复文本框的相对位置?
【发布时间】:2014-07-23 16:13:51
【问题描述】:

在 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 多年旧代码的后果之一?

【问题讨论】:

  • 我已经用.RelativeVerticalPosition = wdRelativeVerticalPositionLine检查了你的问题,无论我把形状放在哪个段落都可以正常工作。我在 Document 中有一些文本,运行你的宏,而不是单独将其设置为 ...PositionLine 并且它可以工作。另一个提示 - 尝试从您的宏中完全删除两个 .Relative...Position 属性,这也应该会产生良好的结果。
  • 感谢您关注 KazJaw。不 - 它绝对不起作用,无论是 .Relative....Line 还是什么都没有,大概是因为我有其他一些设置。第 1 段工作正常,但之后的每个段落都增加了大约 6 厘米的向下偏移量,所以如果我可以计算我所在的段落,我可以将其作为一种解决方法来抵消。任何想法如何在页面上找到段落编号?谢谢
  • 它相当复杂,并且可能会导致意外行为,具体取决于文档中的文本和对象。如果我有纯文本,这是在第 3 页选择第 3 段的一种方法:ActiveWindow.Panes(1).Pages(3).Rectangles(1).Range.Paragraphs(3).Range.Select 如果出现任何错误,那么您需要自己试验代码。

标签: vba textbox position ms-word


【解决方案1】:

首先,您还必须设置 RelativeVerticalPosition。
其次,小心使用 .ShapeRange。在某些情况下,.ShapeRange 的不正确使用可能是问题所在。
这是我的代码中的一个小sn-p。刚刚用 Word 2010 测试过。

Dim oShp As Shape
Set oShp = Selection.ShapeRange(1)
oShp.RelativeHorizontalPosition = wdRelativeHorizontalPositionColumn
oShp.RelativeVerticalPosition = wdRelativeVerticalPositionLine


因此,如果您的“使用文本移动对象”未选中,它将在运行代码后变为选中状态。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    • 2016-04-28
    • 2015-07-27
    相关资源
    最近更新 更多