次の方法で共有


方法 : ドキュメント内のテキストを検索および置換する

更新 : 2007 年 11 月

対象

このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。

プロジェクトの種類

  • ドキュメント レベルのプロジェクト

  • アプリケーション レベルのプロジェクト

Microsoft Office のバージョン

  • Word 2003

  • Word 2007

詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

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 - 最初に見つかった項目を置換します。

参照

処理手順

方法 : 文書内のテキストを検索する

方法 : Word の検索オプションを設定する

方法 : 文書で見つかった項目をループする

方法 : 検索後に選択範囲を復元する

概念

Office ソリューションの省略可能なパラメータについて