Word VBAでヘッダー内のテキストを検索・置換する方法

パソコンパソコン・スマホ教室
スポンサーリンク

皆さん、こんにちは。今回は、Wordのヘッダー部分にある特定のテキストを、VBA(Visual Basic for Applications)を使って検索し、別のテキストに置き換える方法をご紹介します。普段、文書の本文内のテキストを置換することは多いかと思いますが、ヘッダー内のテキストを一括で変更したいとき、手作業では大変ですよね。そんなときにVBAが役立ちます。

スポンサーリンク

VBAでヘッダー内のテキストを検索・置換する基本的な方法

Wordのイメージ

Wordのイメージ

まず、VBAを使ってヘッダー内のテキストを検索し、置換する基本的な方法をご紹介します。以下の手順で進めていきましょう。

  1. Wordを開き、AltキーとF11キーを同時に押して、VBAエディターを起動します。
  2. メニューから「挿入」を選び、「モジュール」をクリックして新しいモジュールを追加します。
  3. 以下のコードをモジュール内に貼り付けます。
vba
Sub FindAndReplaceInHeaders()
Dim sec As Section
Dim hdr As HeaderFooter
Dim rng As Range
For Each sec In ActiveDocument.Sections
For Each hdr In sec.Headers
Set rng = hdr.Range
With rng.Find
.Text = "置換前のテキスト"
.Replacement.Text = "置換後のテキスト"
.Wrap = wdFindContinue
.Execute Replace:=wdReplaceAll
End With
Next hdr
Next sec
End Sub

このコードは、文書内のすべてのセクションとそのヘッダーを順にチェックし、指定したテキストを見つけて置換します。

ヘッダー内のテキストボックス内のテキストを検索・置換する方法

ヘッダー内にテキストボックスが含まれている場合、その中のテキストも置換したいですよね。以下のコードを使用すると、ヘッダー内のテキストボックス内のテキストも検索・置換できます。

vba
Sub FindAndReplaceInHeaderTextBoxes()
Dim sec As Section
Dim hdr As HeaderFooter
Dim shp As Shape
For Each sec In ActiveDocument.Sections
For Each hdr In sec.Headers
For Each shp In hdr.Shapes
If shp.Type = msoTextBox Then
With shp.TextFrame.TextRange.Find
.Text = "置換前のテキスト"
.Replacement.Text = "置換後のテキスト"
.Wrap = wdFindContinue
.Execute Replace:=wdReplaceAll
End With
End If
Next shp
Next hdr
Next sec
End Sub

このコードは、各セクションのヘッダー内にあるすべてのテキストボックスをチェックし、指定したテキストを見つけて置換します。

VBAコードを実行する手順

上記のコードを貼り付けたら、以下の手順で実行します。

  1. VBAエディターの上部メニューから「実行」を選び、「Sub/UserFormの実行」をクリックします。
  2. 実行したいマクロ名(例えば、FindAndReplaceInHeaders)を選択し、「実行」をクリックします。

これで、指定したテキストの置換が実行されます。

よくある質問や疑問

Q1: VBAコードを実行してもヘッダー内のテキストが置換されません。なぜでしょうか?

考えられる原因として、以下の点が挙げられます。

  • 置換前のテキストが正しく入力されていない可能性があります。大文字・小文字の違いや余分なスペースがないか確認してください。
  • ヘッダー内のテキストがテキストボックス内にある場合、通常の検索・置換コードでは対応できません。上記で紹介したテキストボックス内のテキストを置換するコードを使用してください。
  • 文書が保護されている場合、VBAコードが正常に動作しないことがあります。文書の保護を解除してから再度試してください。

Q2: 複数のWord文書に対して同じ置換を行いたいのですが、可能ですか?

はい、可能です。フォルダ内のすべてのWord文書を順に開き、同じ置換を行うVBAコードを作成することで対応できます。ただし、その場合は各文書を開閉する処理やエラーハンドリングなど、追加のコードが必要となります。

今すぐ解決したい!どうしたらいい?

LINE公式

いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」

あなたはこんな経験はありませんか?

✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦

平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。

LINEでメッセージを送れば即時解決!

すでに多くの方が私の公式LINEからお悩みを解決しています。

最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。

誰でも無料で使えますので、安心して使えます。

問題は先のばしにするほど深刻化します。

小さなエラーがデータ消失重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。

あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。

相談しに行く

ぜひ、あなたの悩みを私に解決させてください。

まとめ

今回は、Wordのヘッダー内のテキストをVBAを使って検索・置換する方法をご紹介しました。VBAを活用することで、大量の文書を効率的に編集することが可能となります。ぜひ試してみてください。他にも疑問やお悩み事があればお気軽にLINEからお声掛けください。

コメント

タイトルとURLをコピーしました