方法 : ドキュメント内のテキストを検索および置換する
更新 : 2007 年 11 月
対象 |
---|
このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。 プロジェクトの種類
Microsoft Office のバージョン
詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。 |
Microsoft Office Word ドキュメント内をループして特定のテキスト、書式設定、またはスタイルを検索するには、Find オブジェクトを使用し、見つかった項目のうち任意の項目を置換するには、Replacement プロパティを使用します。
次のコードは、現在の選択範囲で「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 - 最初に見つかった項目を置換します。