2015-12-28 68 views
0

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

任何人都可以告诉我如何设置一个形状的水平布局在vba书籍布局?

Screenshot from word

[更新]下面的伎俩:

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

您是否尝试过使用Marco录音机(在Word的较新版本中的左下角)?每次我确定新的位置时,奇怪的是我的副本崩溃了。 –

+0

当我使用宏录像机时,我无法编辑图像的属性:/ – Sam

+0

现在我设法在宏录像机中输入对话框,进行更改,但在宏中没有任何记录。所以我仍然不知道如何设置它。 – Sam

回答

2

在最近版本的Word的宏录制给出的图形对象没有帮助。您可以做的下一件最好的事情是在对象浏览器(F2)中查看该对象的可用属性。

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

在那里你会发现属性RelativeHorizo​​ntalPosition,它接受WdRelativeHorizo​​ntalPosition枚举的成员。看看这个列表,有很多选项,其中没有任何一个有“书”。

所以下一步是插入和格式化所需的定位形状。然后在即时窗口(Ctrl + G)中输入:

?ActiveDocument.Shapes(1).RelativeHorizontalPosition 

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

您还可以通过在立即窗口指派他们测试各成员的作用:

ActiveDocument.Shapes(1).RelativeHorizontalPosition = wdRelativeHorizontalPositionOuterMarginArea 

按Enter键。

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

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

ActiveDocument.Shapes(1).RelativeHorizontalPosition = wdRelativeHorizontalPositionInnerMarginArea 

除此之外,还需要使用LeftRelative和Left属性。在使用对话框并使用对话框进行播放之后,请查看立即窗口中的这些设置,将图像放在奇数页/偶数页上。如果消失 - 页面的可见部分关闭,您可以在阅读视图中看到该部分。简而言之,您需要使用负号将图片锁定到边距或页面。正数表示绝对的位置。

+0

我试过你的方法,但在使用innermargin位置时,我从内边距获得-8,99的绝对位置,这与书籍布局选项的行为完全不同。 主要区别:由于某种原因,内部页边不会承认偶数页/奇数页,与书籍布局不同,这很好地实现了这一点,并按照我喜欢的方式对边缘进行了尊重。 我已经看过其他属性,但找不到任何看起来像书的布局。 – Sam

+0

如果我设置水平对齐方式使用UI预订布局,看看它设置为0(wdRelativeHorizo​​nalPositionMargin)的RelativeHorizo​​ntalPosition - 但如果我通过脚本设置这个值不出现ALS“书布局”,而是作为绝对位置的边缘,这(再次)表现不同于书的布局:( – Sam

+0

发现它!左和LeftRelative已经是关键! – Sam