方法 : ドキュメント内のテキストを検索および置換する
Microsoft Office Word ドキュメント内をループして特定のテキスト、書式設定、またはスタイルを検索するには、Find オブジェクトを使用し、見つかった項目のうち任意の項目を置換するには、Replacement プロパティを使用します。
対象: このトピックの情報は、Word 2007 と Word 2010 のドキュメント レベルのプロジェクトおよびアプリケーション レベルのプロジェクトに適用されます。詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。
次のコードは、現在の選択範囲で「find me」という文字列をすべて検索し、見つかった文字列を「Found」という文字列に置換します。 このコード例を使用するには、プロジェクトの ThisDocument クラスまたは ThisAddIn クラスから実行します。
使用例
Private Sub SearchReplace()
Dim FindObject As Word.Find = Application.Selection.Find
With FindObject
.ClearFormatting()
.Text = "find me"
.Replacement.ClearFormatting()
.Replacement.Text = "Found"
.Execute(Replace:=Word.WdReplace.wdReplaceAll)
End With
End Sub
private void SearchReplace()
{
Word.Find findObject = Application.Selection.Find;
findObject.ClearFormatting();
findObject.Text = "find me";
findObject.Replacement.ClearFormatting();
findObject.Replacement.Text = "Found";
object replaceAll = Word.WdReplace.wdReplaceAll;
findObject.Execute(ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref replaceAll, ref missing, ref missing, ref missing, ref missing);
}
コードのコンパイル
Find クラスに ClearFormatting メソッドがあり、Replacement クラスにも独自の ClearFormatting メソッドがあります。 検索置換操作の実行時には、両方のオブジェクトの ClearFormatting メソッドを使用する必要があります。 このメソッドを Find オブジェクトでのみ使用すると、置換テキストが予測できない結果になることがあります。
Find オブジェクトの Execute メソッドを使用して、見つかった項目ごとに置換します。 置換する項目を指定するには、Replace パラメーターを使用します。 このパラメーターは、次のいずれかの WdReplace 値になります。
wdReplaceAll は、見つかった項目をすべて置換します。
wdReplaceNone は、見つかった項目を置換しません。
wdReplaceOne は、最初に見つかった項目を置換します。