簡體   English   中英

在內聯形狀上使用 vba 模擬單詞邊框和陰影選項“適用於:”(文本)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM