2015-12-28 70 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