[英]Mimic word borders and shading option "apply to:" (text) with vba on an inline shape
我有一個宏,它有一個表,第一行是該表的名稱,所有后續行都是粘貼的打印屏幕。 宏的作用是,當粘貼新的打印屏幕時,圖像被調整為特定大小並添加 050pt 的邊框。
我被要求將邊框應用於文本:例如:
我在圖像上所做的是選擇整個表格,左上角有一個小十字,右鍵單擊鼠標,選擇“邊框和底紋”選項,最后像這樣格式化我的邊框:.5pt 框單線樣式。 所有這些都很好,問題在於紅色框所在的位置,我如何使用 VBA 模擬“應用於:文本”選項。 當您選擇該選項時,它會做什么? 當圖像的行為類似於 inlineShape 時,您如何將邊框設置為文本有什么辦法可以做到這一點?
注意:如您所見,它是 Office Word 2010
編輯:
有沒有辦法在不使用Selection
情況下做到這一點? 問題是我的 sub 是這樣工作的: For Each inlineShape in ActiveDocument.InlineShapes
獲取文檔中的所有形狀,或者我可以使用 For Each 將所有形狀存儲在變量中並將該變量視為Selection
嗎? 我這樣做是為了在對文檔進行多次更改后,子程序會觸發並檢查文檔中的每個屏幕截圖,以便即使進行了更改也能保持一致。
大多數情況下,想到 Word 中的Range
,我們會想到文本。 但是, InlineShapes
是文檔中Range
對象的一部分。 它們 - 文本和 InlineShapes 都可以有邊框。 我對您的簡單想法是在您選擇一些文本和/或InlineShape
后嘗試此代碼。
Sub BorderingText_InLnShapes()
With Selection.Range
.Borders(wdBorderTop).LineStyle = wdLineStyleSingle
.Borders(wdBorderLeft).LineStyle = wdLineStyleSingle
.Borders(wdBorderRight).LineStyle = wdLineStyleSingle
.Borders(wdBorderBottom).LineStyle = wdLineStyleSingle
End With
End Sub
使用宏記錄器時,您可以使用類似的宏來引用Font
對象:
Sub Alternative()
'based on recorder
With Selection.Font
With .Borders(1)
.LineStyle = wdLineStyleSingle
.LineWidth = wdLineWidth050pt
.Color = wdColorAutomatic
End With
.Borders.Shadow = False
End With
End Sub
上面的代碼與 InlineShape 的工作有點不同,但與文本幾乎相同。 我希望它有點幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.