Note: The other languages of the website are Google-translated. Back to English

Wordで複数のファイルを検索して置き換える方法は?

同じコンテンツ(ヘッダー、フッター、いくつかの特別な単語や数字など)を含む数十の単語ファイルがあり、Word内のそれらのドキュメント全体で同じコンテンツを置き換える必要がある場合。 あなたがそれを素早く成し遂げるのはどのように簡単でしょうか? 確かに、それらのファイルをXNUMXつずつ開いて同じコンテンツを置き換えることはできますが、時間と手間がかかります。 このチュートリアルでは、Wordの複数のドキュメント内の同じコンテンツを一度に置き換えるトリッキーな方法を紹介します。

複数のWord文書にまたがるテキストを同時に検索し、VBAコードで置き換えます
Kutools for Wordを使用すると、複数のドキュメントにまたがるさまざまなテキストを同時に簡単に見つけて置き換えることができます。


複数のWord文書にまたがるテキストを同時に検索し、VBAコードで置き換えます

1。 押す 他の + F11 を開く アプリケーション向け Microsoft Visual Basic 窓。

2。 の中に アプリケーション向け Microsoft Visual Basic ウィンドウ、クリック インセットモジュール、次に、次のVBAコードをモジュールウィンドウにコピーします。

VBAコード:一度に複数のドキュメントで同じコンテンツを検索して置き換える

Sub CommandButton1_Click()
'Updated by Extendoffice 20180625
Dim xFileDialog As FileDialog, GetStr(1 To 100) As String '100 files is the maximum applying this code
Dim xFindStr As String
Dim xReplaceStr As String
Dim xDoc As Document
On Error Resume Next
Set xFileDialog = Application.FileDialog(msoFileDialogFilePicker)
With xFileDialog
    .Filters.Clear
    .Filters.Add "All WORD File ", "*.docx", 1
    .AllowMultiSelect = True
    i = 1
    If .Show = -1 Then
        For Each stiSelectedItem In .SelectedItems
            GetStr(i) = stiSelectedItem
            i = i + 1
        Next
        i = i - 1
    End If
    Application.ScreenUpdating = False
    xFindStr = InputBox("Find what:", "Kutools for Word", xFindStr)
    xReplaceStr = InputBox("Replace with:", "Kutools for Word", xReplaceStr)
    For j = 1 To i Step 1
        Set xDoc = Documents.Open(FileName:=GetStr(j), Visible:=True)
        Windows(GetStr(j)).Activate
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = xFindStr  'Find What
            .Replacement.Text = xReplaceStr  'Replace With
            .Forward = True
            .Wrap = wdFindAsk
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchByte = True
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        Application.Run macroname:="NEWMACROS"
        ActiveDocument.Save
        ActiveWindow.Close
    Next
    Application.ScreenUpdating = True
End With
MsgBox "Operation end, please view", vbInformation
End Sub

3。 プレス F5 コードを実行するためのキー。

4.オープニングで ブラウズ ウィンドウで、検索するドキュメントを見つけて選択し、内部のテキストを置き換えてから、[ OK ボタン。 スクリーンショットを参照してください:

5.最初に Kutools for Word ダイアログボックスで、ドキュメント全体に表示されるテキストを 見つける ボックスをクリックし、 OK ボタン。

6番目に Kutools for Word ダイアログボックスで、置き換えるテキストを入力し、[ OK ボタン。

8。 クリック OK 次のボタン マイクロソフトワード 検索と置換を終了するダイアログボックス。

この場合、選択したドキュメント内のすべての単語「Word」が同時に「Excel」に置き換えられます。


Kutools for Wordを使用すると、複数のドキュメントにまたがるさまざまなテキストを同時に簡単に見つけて置き換えることができます。

ここで強くお勧めします バッチ検索と置換 の特徴 Kutools for Word。 この機能を使用すると、複数のWord文書で異なるテキストを同時に簡単に見つけて置き換えることができます。 この機能を適用して、ドキュメント全体のテキストを検索して置換する方法を見てみましょう。

Kutools for Word :100以上の便利なWordアドインで、 60日以内に制限なしで無料でお試しいただけます.

1.をクリックしてください クツールズプラス > バッチ検索と置換 この機能を有効にします。

2。 の中に バッチ検索と置換 ダイアログボックスで、次のように構成してください。

  • 2.1)をクリックします 行を追加 ボタンの下に 検索および置換 タブ;
  • 2.2)作成された行フィールド:
A.見つけたテキストをのテキストボックスに入力してください 見つけます カラム
B.置換するテキストをのテキストボックスに入力します 交換します カラム;
C.必要に応じて、テキストを検索する場所とテキストを強調表示する色を指定します。 この場合、私は選択します フルワードマッチング, メインドキュメント とからの特定の色 検索タイプ、 で見つける 及び 特徴 列;
  • 2.3)ステップ2.1と2.2を繰り返して、見つけて置き換えるテキストをさらに追加します。
  • 2.4)をクリックします  ボタンの ファイルの種類 テキストを見つけて置き換えるWord文書を追加するセクション。
  • 2.5)をクリックします 交換します or 見つけます ボタン。 スクリーンショットを参照してください:

免責事項:
1.をクリックした場合 見つけます ボタンをクリックすると、すべての検索結果が下に表示されます。 プレビュー結果 タブ。 結果をプレビューした後、すべてのテキストを置き換える場合は、をクリックしてください。 検索および置換 タブ。 それ以外の場合は、ダイアログを閉じます。

2.をクリックした場合 交換します ボタンをクリックすると、指定したすべてのテキストがすぐに新しいテキストに置き換えられ、結果も下に表示されます。 プレビュー結果 タブでを確認できます。

3.手順2で強調表示の色を指定すると、置き換えられたすべてのテキストが指定された色で強調表示され、ドキュメントで一目で簡単に見つけることができます。

3。 それを閉めて バッチ検索と置換 ダイアログボックス

この機能の詳細については、 ここをクリック....

このユーティリティの無料トライアルをご希望の場合は、 ソフトウェアを無料でダウンロード まず、上記の手順に従って操作を適用します。


推奨される単語生産性ツール

 

Kutools For Word-100を超えるWordの高度な機能で50%の時間を節約

  • 複雑で繰り返される操作は、数秒でXNUMX回の処理で実行できます。
  • 複数の画像をフォルダ間でWord文書に一度に挿入します。
  • フォルダ間で複数のWordファイルをマージして、希望の順序でXNUMXつに結合します。
  • 見出し、セクション区切り、またはその他の基準に従って、現在のドキュメントを個別のドキュメントに分割します。
  • DocとDocx、DocxとPDFの間でファイルを変換し、一般的な変換と選択のためのツールのコレクションなど...
コメントを並べ替える
コメント (69)
まだ評価はありません。 最初に評価してください!
このコメントは、サイトのモデレーターによって最小化されました
問題の文書がどこにあるかを尋ねますか? または、すべてのドキュメントを開く必要がありますか?
ボベット
このコメントは、サイトのモデレーターによって最小化されました
これを実行すると、デフォルトで[ファイルを開く]ダイアログウィンドウが開き、[マイドキュメント]が表示されます。 変更するWordファイルが含まれているフォルダーに移動します。 「Ctrl」+「A」を押してすべてのファイルを選択するか、「Ctrl」キーを押しながら特定のファイルを選択できます。 「開く」をクリックするか、「Enter」を押して、魔法が起こるのを見てください。
PatrickRsGhost
このコメントは、サイトのモデレーターによって最小化されました
はい、これは便利だと思うのと同じ質問がありますが、特定のフォルダのみを検索するように指示したいと思います。
アリソンペッパー
このコメントは、サイトのモデレーターによって最小化されました
マクロを実行すると、「開く」ウィンドウが開きます。 変更が必要なファイルが含まれているフォルダーに移動し、最初のファイルをXNUMX回クリックしてから、「Ctrl」キーを押しながら、検索/置換が必要な他のファイルをクリックします。 フォルダ内のすべてのファイルにアクションが必要な場合は、「Ctrl」キーと「A」キーを押すだけです。 次に、「開く」をクリックするか、「Enter」キーを押すと、マクロが開始されます。 仕事でこれを何十回も実行したので、警告する必要があります。マクロは、Word文書の*本文*にのみ変更が加えられる結果になります。 ヘッダー、フッター、およびタイトルテキスト/代替テキストは除外されます。 前述の部分に置換が必要なテキストがある場合は、個々のドキュメントに対して標準の検索/置換を実行する必要があります。
Patrick
このコメントは、サイトのモデレーターによって最小化されました
このVBA手法は、Publisherファイルで機能するように適合させることができますか? たとえば、*。docxを*.pubに変更しますか?
ジェームズR
このコメントは、サイトのモデレーターによって最小化されました
わあ、あなたはこのマクロをまとめる聖人です! 私はSongzaで「EpicBattleMusic」を聴いています。なぜなら、私はそのようなアマチュアのマクロスミスであり、プログラミング呪文を作成する苦痛と苦痛を乗り越えることができる唯一の方法だからです。 とにかく、私が言いたいのは、金曜日に、実際に検索したいテキストを入力した部分のトラブルシューティングと、置き換えたいテキストを入力した部分のトラブルシューティングに多くの時間を費やしたことです。 「検索」単語テキストと「置換」単語テキストを配置する用語:[quote]注:Text = "search"、Replacement.Text = "find"を変更して、検索するコンテンツとコンテンツを指定できます。交換のために適用されます。 [/ quote]今日もこれを読み直しました。他のプログラミングの非開始者については、敬意を表して明確にしておきたいと思います。元のプログラミング言語をコピーして貼り付けたVBAのセクションでは、必ず'の後に終了してください。 と'の後に   (以下の例を参照)-私の例では、PizzaをStromboliに置き換える複数のドキュメントを探しています。.Text= "Pizza"'Find What' .Replacement.Text = "Stromboli"'Replace With'
ジェビディア・スプリングフィールド
このコメントは、サイトのモデレーターによって最小化されました
実行すると、ハングアップして次の場所で停止します:Application.Run macroname:= "NEWMACROS"にステップインすると、コンパイルエラーが発生したことが通知されます:名前付き引数が見つかりません。 それで?
グレッグシモニス
このコメントは、サイトのモデレーターによって最小化されました
チャームのように機能し、時間と労力を大幅に節約できました。 ありがとう。
ムラリスク
このコメントは、サイトのモデレーターによって最小化されました
それでも、Windows 7を実行しているPCでこれを機能させることはできません。実行すると、-Windows(GetStr(j))。Activateエラーメッセージの行にエラーメッセージが表示されます。 は:-コンパイルエラー:-サブまたは関数が定義されていません理由は何ですか? そしてそれを修正する方法は?
グレッグシモニス
このコメントは、サイトのモデレーターによって最小化されました
これが最終的に私のために働いたものです。 お役に立てば幸いです。 このマクロをWordファイルに追加しました。 ファイルダイアログが開いているときに、選択したドキュメントの置換が実行されます(必要な数だけ選択できます)。 サブフォルダでは機能しないので、ファイル構造内の各フォルダを個別に実行しましたが、機能しました。最善の修正ではないかもしれませんが、少なくとも機能します。 Private Sub CommandButton1_Click()Dim MyDialog As FileDialog、GetStr(1 To 100)As String '100ファイルは、このコードを適用する最大のファイルです。エラー時に再開次のセットMyDialog = Application.FileDialog(msoFileDialogFilePicker)With MyDialog .Filters.Clear' ~~>このファイル拡張子を関連するドキュメントタイプに変更します。 .Filters.Add "All WORD File"、 "* .doc"、1 .AllowMultiSelect = True i = 1 If .Show = -1 Then For Each stiSelectedItem In .SelectedItems GetStr(i)= stiSelectedItem i = i + 1 Next i = i-1 End If Application.ScreenUpdating = False For j = 1Toiステップ1Setdoc = Documents.Open(FileName:= GetStr(j)、Visible:= True)Windows(GetStr(j))。ActivateSelection。 Find.ClearFormatting Selection.Find.Replacement.ClearFormatting'セクション、次に続くコードのセクションのいずれか。
ピアウィルソン
このコメントは、サイトのモデレーターによって最小化されました
次に、置き換えるテストまたはハイパーリンクのどちらであるかに応じて、次の1つのセクションのいずれかを追加します'~~>コメントがない場合、このセクションはテキストを置き換えます-XNUMXつのセクションのうちXNUMXつだけがSelection.Find .Text="で一度にコメントを外すことができますhttp://www.google.co.uk "'Find What .Replacement.Text =" http://www.google.com "'Replace With .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:= wdReplaceAll Application.Run macroname:= "NEWMACROS" ActiveDocument.Save ActiveDocument.Close Next Application.ScreenUpdating = True End With MsgBox "operation end、please view"、vbInformation'~~>コメントがない場合、このセクションはハイパーリンクを置き換えます' For i = XNUMX Todoc.Hyperlinks.Count''ハイパーリンクが一致する場合。 'If LCase(doc.Hyperlinks(i).Address)= "http://www.google.co.uk/"Then''リンクアドレスを変更します。 'doc.Hyperlinks(i).Address = "https://www.google.com"''必要に応じて、リンクの表示テキストを変更します。 'doc.Hyperlinks(i).TextToDisplay = "http://www.google.com"' End If'Next' Application.Run macroname:= "NEWMACROS"'ActiveDocument.Save' ActiveDocument.Close'Next' Application.ScreenUpdating = True'End With' MsgBox "操作終了、表示してください"、vbInformation End Sub
ピアウィルソン
このコメントは、サイトのモデレーターによって最小化されました
こんにちはピア、私はハイパーリンクを置き換えるためにあなたのスクリプトを実行しようとしていますが、エラーが発生しています。 ハイパーリンクをすべて1つに置き換えるためのスクリプトを投稿できる可能性はありますか? あなたのコードにパッチを当てようとするとき、私は何かを台無しにしているに違いありません。
セガーン
このコメントは、サイトのモデレーターによって最小化されました
選択したファイル間でのみ実行され、ファイルは1つのフォルダーにのみ存在する必要があります。 これは、ワードドキュメントのマクロとして実行されます。 ボタンをクリックすることで実行されます。 これが役立つことを願って、それはワードドキュメントの希望を更新するだけです。 Private Sub CommandButton1_Click()Dim MyDialog As FileDialog、GetStr(100 To 100)As String '1ファイルは、このコードを適用する最大のファイルです。エラー時に再開次のセットMyDialog = Application.FileDialog(msoFileDialogFilePicker)With MyDialog .Filters.Clear' ~~>このファイル拡張子を関連するドキュメントタイプに変更します。 .Filters.Add "All WORD File"、 "* .doc"、1 .AllowMultiSelect = True i = 1 If .Show = -1 Then For Each stiSelectedItem In .SelectedItems GetStr(i)= stiSelectedItem i = i + 1 Next i = i-1 End If Application.ScreenUpdating = False For j = 1Toiステップ1Setdoc = Documents.Open(FileName:= GetStr(j)、Visible:= True)Windows(GetStr(j))。ActivateSelection。 Find.ClearFormatting Selection.Find.Replacement.ClearFormatting For i = XNUMX Todoc.Hyperlinks.Count'ハイパーリンクが一致する場合。 If LCase(doc.Hyperlinks(i).Address)= "http://www.yahoo.co.uk/"Then'リンクアドレスを変更します。 doc.Hyperlinks(i).Address = "https://www.google.co.uk"'必要に応じて、リンクの表示テキストを変更します。 doc.Hyperlinks(i).TextToDisplay = "http://www.google.co.uk" End If Next Application.Run macroname:= "NEWMACROS" ActiveDocument.Save ActiveDocument.Close Next Application.ScreenUpdating = True End With MsgBox "操作終了、ご覧ください」、vbInformation End Sub
ピア
このコメントは、サイトのモデレーターによって最小化されました
これは完璧に機能し、多くの時間を節約できました。 ありがとうございました!
ダニ
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、これはドキュメントの本文の単語にはうまく機能しましたが、ヘッダーの同じ単語を置き換えませんでした。 何か案は。 ありがとう
ジュディ
このコメントは、サイトのモデレーターによって最小化されました
置換テキストの形式を変更したい。 つまり、「ピザ」は「バーガー"。どうすればそれを達成できますか?
Nilesh
このコメントは、サイトのモデレーターによって最小化されました
ビッグTHX4コード...しかし、ヘッダー付きのprblmもあります...変更なし事前に感謝します
WORDZ
このコメントは、サイトのモデレーターによって最小化されました
これを投稿してくれてありがとう! 私はいくつかのテストを実行し、それが私のために機能するようになりました。 ただし、何らかの理由でヘッダーとフッターのテキストには機能しません。 これに対する修正はありますか?
sathena99
このコメントは、サイトのモデレーターによって最小化されました
申し訳ありませんが、ヘッダーやフォーマットについてはわかりません。 これは、コードに含める必要のあるものではありませんでした。 私はこれまで自分でこれを使用したことがなく、投稿したコードは上記の元のコードから取得され、機能するまで他の検索で見つかったコードを使用してtweekedされました。 申し訳ありませんが、これ以上お役に立てることはありません。
ピア
このコメントは、サイトのモデレーターによって最小化されました
私はここ数分間それをテストしてきました、そしてそれは本当に不思議です、ありがとう! いくつかのファイルに対していくつかの「検索と置換」ルーチンを実行する必要があります。 数十のファイルに対する数十のルーチン。 モジュールを「保存」して、新しいルーチンを実行する必要があるたびにVBA画面に再度貼り付ける必要がないようにする方法はありますか?
このコメントは、サイトのモデレーターによって最小化されました
このマクロを微調整して、複数の「検索と置換」スタンスを一度に実行することは可能ですか? 置き換える必要のある単語とフェーズがいくつかあり、現時点では、インスタンスごとにVBAコードを再挿入する必要があります。 私はそれらのことに関して初心者です
マリオ
このコメントは、サイトのモデレーターによって最小化されました
このコードは私にとって非常に多くの時間を節約しました...だから、ありがとう! ただし、マクロが検出/置換する単語の数を増やす方法はありますか? 一度に複数の段落を検索/置換する必要がありますが、マクロには約200文字の制限があるようです。
ミロ
ここにはまだコメントが投稿されていません
もっと読み込む
あなたのコメントを残す
ゲストとして投稿
×
この投稿を評価:
0  文字
推奨される場所