在vba中将形状位置设置为书籍布局

时间:2015-12-28 08:20:37

标签: vba ms-word word-vba

我想使用word宏来设置文档中形状的位置到书籍布局(见截图)。但我无法找到任何参考我需要为此设置的成员(可能是因为我的单词是德语,在宏中称为不同)。

有谁能告诉我如何在vba中设置形状的水平布局以预订布局?

Screenshot from word

[更新]以下是诀窍:

Shape.Left = -999994
Shape.LeftRelative = -999999
Shape.RelativeHorizontalPosition = wdRelativeHorizontalPositionMargin

1 个答案:

答案 0 :(得分:2)

在最新版本的Word中,宏录制器对图形对象没有任何帮助。您可以做的下一件事是在对象浏览器(F2)中查看对象的可用属性。

如果图形对象具有"文本换行"格式化然后它属于Shapes集合,因此您需要查找的列表是Shape对象的列表。

在那里,您将找到属性RelativeHorizo​​ntalPosition,它接受WdRelativeHorizo​​ntalPosition枚举的成员。查看该列表有许多选项,其中没有一个选项有#34; book"在它。

所以下一步是插入并格式化具有所需定位的Shape。然后在立即窗口(Ctrl + G)中键入:

?ActiveDocument.Shapes(1).RelativeHorizontalPosition

然后按Enter键。这将打印一个与枚举成员列表对应的数字。

您还可以通过在立即窗口中分配它们来测试各种成员的效果:

ActiveDocument.Shapes(1).RelativeHorizontalPosition = wdRelativeHorizontalPositionOuterMarginArea

按Enter键。

您将看到的是,对话框中的每个选项都没有枚举成员。对话框中的各种定位选项对应于单个枚举成员。

对于您的具体问题,wdRelativeHorizo​​ntalPositionInnerMarginArea对应于您指定的对话框选项。

ActiveDocument.Shapes(1).RelativeHorizontalPosition = wdRelativeHorizontalPositionInnerMarginArea 

除了上述内容之外,您还需要使用LeftRelative和Left属性。使用对话框后,在立即窗口中查看这些设置,然后使用它们,将图像放在奇数/偶数页上。如果它消失了 - 它会关闭页面的可见部分,您可以在阅读视图。简而言之,您需要使用NEGATIVE数字将图像锁定到边距或页面。正数位置绝对。