1. 程式人生 > >Word VBA教程:查詢並替換文字或格式

Word VBA教程:查詢並替換文字或格式

通過Find 和Replacement物件可實現查詢和替換功能。Selection 和Range物件可以使用 Find物件。從 Selection 或 Range物件訪問 Find物件時,查詢操作會略有不同。

查詢並選定文字

如果從 Selection物件訪問 Find物件,當找到搜尋條件時,就會更改所選內容。下列示例選定下一個出現的“Hello”。如果到達文件結尾時仍未找到“Hello”,則停止搜尋。

 

With Selection.Find

    .Forward = True

    .Wrap = wdFindStop

    .Text = "Hello"

    .Execute

End With

Find物件包含與“查詢和替換”對話方塊中的選項相關的屬性(在“編輯”選單上選擇“查詢”可顯示該對話方塊)。可以設定 Find物件單獨的屬性或使用Execute方法的引數,如下例所示。

 

Selection.Find.Execute FindText:="Hello", _

    Forward:=True, Wrap:=wdFindStop

查詢文字,但不更改所選內容

如果從 Range物件訪問 Find物件,則找到搜尋條件時,不更改所選內容,但是會重新定義 Range物件。下列示例在活動文件中查詢第一個出現的“blue”。如果找到該單詞,則重新定義該區域,並將加粗格式應用於單詞“blue”。

 

With ActiveDocument.Content.Find

    .Text = "blue"

    .Forward = True

    .Execute

    If .Found = True Then .Parent.Bold = True

End With

下列示例使用 Execute方法的引數,執行結果與上例相同。

 

Set myRange = ActiveDocument.Content

myRange.Find.Execute FindText:="blue", Forward:=True

If myRange.Find.Found = True Then myRange.Bold = True

使用 Replacement物件

Replacement物件代表查詢和替換操作的替換條件。Replacement物件的屬性和方法對應於“查詢和替換”對話方塊中的選項(單擊“編輯”選單中的“查詢”或“替換”命令可顯示該對話方塊)。

可通過 Find物件使用 Replacement物件。下列示例將所有單詞“hi”替換為“hello”。由於 Find物件是通過 Selection物件訪問的,所以當找到搜尋條件時,會更改所選內容。

 

With Selection.Find

    .ClearFormatting

    .Text = "hi"

    .Replacement.ClearFormatting

    .Replacement.Text = "hello"

    .Execute Replace:=wdReplaceAll, Forward:=True, _

        Wrap:=wdFindContinue

End With

下列示例取消活動文件中的加粗格式。Find物件的Bold屬性為 True,而 Replacement物件的該屬性為 False。若要查詢並替換格式,可將查詢和替換文字設為空字串 (""),並將 Execute方法的 Format引數設為 True。由於從 Range物件訪問 Find物件,所選內容將保持不變(Content屬性返回一個 Range物件)。

 

With ActiveDocument.Content.Find

    .ClearFormatting

    .Font.Bold = True

    With .Replacement

        .ClearFormatting

        .Font.Bold = False

    End With

    .Execute FindText:="", ReplaceWith:="", _

        Format:=True, Replace:=wdReplaceAll

End With