用於刪除 Word 2010 文件中圖形/文字之間間距的巨集?

用於刪除 Word 2010 文件中圖形/文字之間間距的巨集?

我經常創建僅包含圖形項目的 Word(2010 版)文檔,偶爾在圖形旁邊包含一些文本,例如“新建!” (我想保留)。我想創建一個宏,它將刪除所有這些圖形/圖形之間的所有間距(任何類型),並在文檔中的項目後面添加一些文本 - 以便它們全部排列起來,一個接一個,直到填滿一個行,然後下一個圖形將自動從下一行開始(然後再次重複一個又一個圖形,沒有任何間距)等。我上傳了「之前/之後」的 GIF 圖像,說明運行巨集之前和之後文件的外觀:

巨集之前(截圖)巨集之後(截圖)

作為一個附帶問題,如果我想在圖形之間添加一定數量的空格,有沒有辦法可以輕鬆地「調整」maco 來實現這一點?如果是這樣,我還必須向巨集添加什麼文字才能完成此操作?

非常感謝你的幫忙。

答案1

Word 內建的「尋找與取代」工具可以為您完成 90% 的工作。如果您使用「特殊」下拉按鈕所在的「更多>>」選項,它可以搜尋分頁符號、段落標記、空格等。

「特殊」按鈕將允許您選擇段落、各種不同的空白字元、換行符等。

另外 10% 可以使用 VBA 開發人員標籤上的巨集記錄器來完成。

開始錄製,替換所有換行符、段落標記等,直到您獲得想要的影像。

然後停止錄音。瞧。宏觀魔法。

快速測試為我提供了以下內容來清除大多數各種格式類型。^p對應於“段落標記”,尋找和取代工具將其替換為""“即無”。

Sub Macro1()
'
' Macro1 Macro
'
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "^p"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^t"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "^b"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "^m"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = " "
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

如果您想要每個圖像之間有一個空格,那麼只需更改.Replacement.Text = ""每個部分以包含一個空格,例如.Replacement.Text = " "

相關內容