次の方法で共有


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

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

参照

処理手順

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

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

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

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

概念

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