C# で Word 文書内のテキストを置換する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronWordはC#の開発者がMicrosoft Office InteropなしでWord文書内のテキストをプログラムで検索し置換することを可能にし、文書更新の自動化、テンプレートのパーソナライズ、コンテンツの一括管理のためのソリューションを提供します。

Word文書のテキスト置換を自動化することは、テンプレートのパーソナライズ、レポートの更新、コンテンツの一括管理など、一般的なニーズです。IronWordはこの作業を簡単にするC#ライブラリで、単純な検索と置換の操作から複雑な文書処理ワークフローまで、すべてを処理します。

IronWordはMicrosoft Office Interopに依存することなく、Word文書を直接操作します。つまり、Wordをサーバーにインストールする必要がないため、バックエンドプロセスやWebアプリケーションのための、より高速で信頼性の高いスケーラブルなソリューションが実現します。 Microsoft Officeから独立しているため、IronWordはクラウドのデプロイメント、コンテナ化されたアプリケーション、自動化された文書処理パイプラインで特に重宝されます。

このハウツーガイドでは、包括的なコード例を通して、あらゆるWord文書内のテキストを検索して置換する方法を紹介します。 単純なテキストの置き換えでも、複数の段落や書式を含む複雑な文書構造でも、IronWordは必要なツールを提供します。

クイックスタート: Word文書内のテキストを簡単に置換

このガイドでは、IronWordを使ってWord文書のテキストを置換する方法を説明します。 わずか数行のC#コードで、DOCXファイルを読み込み、指定されたテキストを置換し、更新された文書を保存することができます。 このプロセスは、Microsoft Office Interopなしで動作するため、バックエンドプロセスやWebアプリケーションに最適です。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronWord をインストールします

    PM > Install-Package IronWord

  2. このコード スニペットをコピーして実行します。

    IronWord.Document doc = new IronWord.Document("sample.docx");
    doc.ReplaceText("oldText", "newText");
    doc.SaveAs("updated.docx");
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronWord を使い始めましょう
    arrow pointer

Word文書のテキストを置換するにはどうすればよいですか?

Word文書内のテキスト置換は、IronWordを使うと直感的です。 まず、WordDocumentコンストラクタを使って既存のドキュメントを読み込みます。 次に、Paragraphsプロパティにアクセスし、特定の段落でReplaceTextメソッドを使用します。 このアプローチでは、ドキュメントのどの部分を修正するかを細かく制御できます。

ReplaceTextメソッドは、2つの文字列パラメータを取り、見つけたいテキストと置換するテキストを指定します。 このメソッドは、選択した段落内の一致するすべてのインスタンスの完全な置換を実行するため、商品名の更新、日付の変更、顧客情報のパーソナライズなどのシナリオに最適です。

ヒント ReplaceTextメソッドは大文字と小文字を区別し、選択した段落内の文字列のすべてのインスタンスを置き換えます。

Paragraphsコレクションを使用する場合、IronWordがどのようにドキュメント・コンテンツを構成するかを理解することが重要です。 Word文書の各段落は、コレクション内の個々の要素として表現されるため、文書の特定のセクションを正確にターゲットにすることができます。

ヒントこの例で使用されるすべてのオブジェクトリストは、ゼロベースのインデックスに従います。

入力ドキュメントはどのようなものですか?

この例では、サンプル Word 文書を使用します。この文書には 2 つの段落があり、どちらも"古いテキスト"というテキストが含まれています。 この単純な構造は、段落レベルでテキスト置換がどのように機能するかを示しています。

置換前の

どのように置換コードを書けばよいですか?

以下は、最初の段落の"古いテキスト"を"新しいテキスト"に置き換えるコードです。 インデックス表記を使用して特定の段落をターゲットにすることで、どのコンテンツが変更されるかを正確に制御していることに注目してください:

:path=/static-assets/word/content-code-examples/how-to/replace-words.cs
using IronWord;

// Open existing Word
WordDocument doc = new WordDocument("sample.docx");

// Replace the first paragraph's old text with new text
doc.Paragraphs[0].ReplaceText("old text", "new text");

// Save updated Word Document
doc.SaveAs("updated.docx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

上のコードはIronWordによるテキスト置換の簡単さを示しています。 ドキュメントを読み込み、特定の段落をターゲットにし、ReplaceTextを呼び出すことで、わずか数行のコードでドキュメントの内容を変更することができます。 このアプローチは、従来のOffice Interopの手法よりも簡単です。

出力はどのように見えますか?

置き換え操作後の最初の段落に

出力ファイルでわかるように、最初の段落のテキストのみが変更され、2番目は変更されていません。 文書全体に影響を与えることなく特定のセクションを更新する必要がある場合、この選択的置換機能は非常に重要です。

複数のテキストを置換するにはどうすればよいですか?

文書全体を通して単語が出現するたびに置き換えるには、Paragraphsコレクションをループし、それぞれにReplaceTextメソッドを適用します。 このようなアプローチにより、文書内のどの位置に表示されているかにかかわらず、ターゲットとなるテキストを見逃すことはありません。

以前と同じsample.docxファイルを使用します。 置換するテキストが段落内に見つからない場合、操作は実行されず、ループは次の段落に続きます。 このフェイルセーフの動作は、置換を試みる前にテキストが存在するかどうかをチェックする心配がないことを意味します。

ご注意 置換するテキストが見つからない場合は、何も操作されません。

複数の置換に必要なコードは何ですか?

以下は、文書全体を通して"古いテキスト"を"新しいテキスト"に置き換えるコードです:

:path=/static-assets/word/content-code-examples/how-to/replace-words-multiple.cs
using IronWord;

// Open existing Word
WordDocument doc = new WordDocument("sample.docx");

// Loop through each paragraph to find and replace text
for (int i = 0; i < doc.Paragraphs.Count; i++)
{
    // Replace all occurrences of "old text" with "new text" in the current paragraph
    doc.Paragraphs[i].ReplaceText("old text", "new text");
}

// Save updated Word Document
doc.SaveAs("updated.docx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このループアプローチは、ドキュメントを完全にカバーします。 すべての段落を反復することで、ターゲットテキストのすべてのインスタンスが置換されるようにします。 この方法は、会社名の変更、用語の更新、文書全体の一貫した書式の適用など、一括更新の場合に特に有効です。

複数回置き換えた後、ドキュメントはどのようになりますか?

複数のテキスト置換操作後に.

この更新されたWord文書からわかるように、両方の段落が"新しいテキスト"に置き換えられています。 これは、包括的なテキスト置換のためのループアプローチの有効性を示しています。

置き換える前にテキストが存在することを確認するにはどうすればよいですか?

操作を実行する前にテキストが存在することを確認する必要がある場合は、FindTextメソッドを使用してください。 このメソッドは文書全体を検索し、検索クエリと一致する最初のTextElementを返します。 この検証ステップは、変更を加える前に特定のコンテンツの存在を確認する必要がある場合や、ドキュメントのコンテンツに基づいて条件ロジックを構築する場合に役立ちます。

FindTextメソッドは、次のようなシナリオで特に役立ちます:

  • どの文書に特定のテキストが含まれているかを記録する必要があります。
  • テキストが見つかったかどうかに応じて、異なるアクションを実行する必要があります。
  • 文書検証システムを構築中
  • ドキュメントの内容に関するレポートを作成する必要があります。

上記のWord文書で古いテキストを検索する例を以下に示します。

テキストを検索するにはどのコードを使用しますか?

:path=/static-assets/word/content-code-examples/how-to/replace-words-find-text.cs
using IronWord;
using System;

// Open existing Word
WordDocument doc = new WordDocument("sample.docx");

// Returns the first TextContent element that contains the specified text.
Console.WriteLine(doc.FindText("old text"));
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このコードはIronWordによるテキスト検索のシンプルさを示しています。 FindTextメソッドは、テキストが見つかればTextElementオブジェクトを返し、見つからなければNULLを返すので、検索結果に基づいて条件ロジックを簡単に実装できます。

テキストの検索結果は何を表示しますか?

Visual Studio Debug console display 'old_text' output from FindText operation.

ご覧のように、一致するテキストが返され、検索用語が文書内に存在することが確認されました。 この検証機能は、さまざまなコンテンツシナリオを処理する必要がある堅牢な文書処理アプリケーションを構築するために不可欠です。

警告 FindText何も返さない場合、そのテキストはドキュメント内に存在しません。 検索語のスペルが正しく、ドキュメント内のテキストの大文字と小文字が一致していることを確認してください。

テキスト置換のベストプラクティス

Word文書のテキスト置換を行う場合は、以下のベストプラクティスを考慮してください:

1.大文字と小文字の区別ReplaceTextは大文字と小文字を区別します。大文字と小文字を区別しない置換のために、テキストを一貫した大文字と小文字に変換してください。

2.パフォーマンスの最適化: バッチ置換と1回保存により、I/O操作を減らし、パフォーマンスを向上させます。

3.エラー処理: ロックされた、破損した、または予期しないドキュメントコンテンツに対するエラー処理を実装します。

4.バックアップ戦略:特に本番環境では、一括置換の前にバックアップを作成してください。

5.メモリ管理:メモリリークを防ぐために、複数のドキュメントを処理するときにドキュメントオブジェクトを適切に破棄してください。

IronWordのわかりやすいAPIは、これらのベストプラクティスをシンプルに実装し、堅牢な文書処理ソリューションを自信を持って構築することを可能にします。

よくある質問

C# を使用して Word 文書のテキストを置換するにはどうすればよいですか?

IronWordはWord文書のテキストをC#で簡単に置き換えることができます。WordDocumentコンストラクタで文書を読み込み、ReplaceTextメソッドでテキストを検索して置換します。このメソッドは、検索するテキストと置換テキストという2つのパラメータを受け取ります。これはMicrosoft Office Interopなしで動作するので、サーバーサイドのアプリケーションに最適です。

Microsoft Officeがインストールされていなくても、テキストを置き換えることはできますか?

IronWordはMicrosoft Office Interopを必要とせず、Word文書を直接操作できます。つまり、Wordをサーバーにインストールする必要がなく、クラウド展開、コンテナ化されたアプリケーション、自動化された文書処理パイプラインに最適な、より高速で信頼性の高いソリューションが実現します。

DOCXファイルのテキストを検索して置換する最も簡単な方法は何ですか?

ファイルパスでDocumentオブジェクトを作成し、古いテキストと新しいテキストでReplaceTextメソッドを呼び出し、SaveAsで保存します。この最小限のワークフローにより、更新されたドキュメントの読み込みから保存までが処理されます。

大文字と小文字は区別されますか?

はい、IronWordのReplaceTextメソッドはデフォルトで大文字と小文字を区別します。選択された段落や文書内の一致するインスタンスをすべて置換し、大文字小文字の正確な一致に基づいて置換されるテキストを正確に制御します。

特定の段落のテキストだけを置き換えることはできますか?

もちろんです。IronWordはParagraphsプロパティを通してきめ細かなコントロールを提供します。コレクションから個々の段落にアクセスし、特定の段落に対してのみReplaceTextを呼び出すことができます。

プログラムによるテキスト置換の一般的な使用例とは?

IronWordは一般的に、テンプレートのパーソナライズ、レポートの更新、コンテンツの一括管理、ドキュメントの更新の自動化に使用されます。特に、商品名の更新、日付の変更、顧客情報のパーソナライズ、自動文書処理が必要な場面で役立ちます。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 28,054 | バージョン: 2025.12 リリース