【入門編】【初心者向け】置換後の文字列に「特定のスタイル」を自動適用して見出しを整える – Word VBA解析バイブル

スポンサーリンク

Word VBAの真髄:検索と置換で「文書構造」を自動化する魔法

こんにちは。自動化の世界へようこそ。
マクロの記録ボタンを押して、生成された長大なコードに溜息をついたことはありませんか? 記録されたコードは「動作の痕跡」に過ぎません。真のエンジニアは、Wordのオブジェクトモデル(Wordという巨大な構造体の地図)を理解し、最短距離で操作します。

今回は、Word VBAにおける「検索と置換」のその先にある、「置換後の文字列にスタイルを自動適用する」という技術を伝授します。これさえマスターすれば、数千ページの仕様書も、数秒で美しい構造を持つ文書へと生まれ変わります。

—

1. なぜ「置換」だけで満足してはいけないのか?

多くの初心者は「文字を置換する」ことだけで満足します。しかし、プロが目指すのは「文書の構造化」です。

見出しを「太字+フォントサイズ大」で手動設定していませんか? それでは、Wordの「ナビゲーションウィンドウ」は何も反応しません。Wordに「これは見出しである」と教えること(=スタイル適用)こそが、自動化の真の目的です。

—

2. 【核心】Findオブジェクトの「魂」を操作する

Word VBAで検索を司るのが `Find` オブジェクトです。これを使いこなすための鍵は、`Replacement` オブジェクトと連携させ、検索の直後に「スタイル」を叩き込むことにあります。

以下のコードを見てください。これは「【見出し】」という文字列を検索し、それを「見出し1」というスタイルへ昇華させるコードです。

Sub ApplyStyleAutomatically()
‘ Wordの検索・置換は「Selection」ではなく「Range」で行うのが定石です
‘ Selectionは画面の表示位置に依存するため、動作が遅くエラーの温床になります
Dim rng As Range
Set rng = ActiveDocument.Content ‘ 文書全体を対象にする

With rng.Find
.ClearFormatting ‘ 前回の検索設定をリセット(重要!)
.Replacement.ClearFormatting

.Text = “【見出し】” ‘ 検索する文字列
.Replacement.Text = “^&” ‘ ^& は「検索で見つけた文字列そのもの」を指す

‘ 置換後の文字列にスタイルを適用する設定
.Replacement.Style = ActiveDocument.Styles(wdStyleHeading1)

‘ 実行!すべて置換します
.Execute Replace:=wdReplaceAll, Format:=True
End With

MsgBox “構造化完了!ナビゲーションウィンドウを確認してください。”
End Sub

—

3. ここで躓く!初心者が陥る「3つの罠」

このコードを書く際、多くの人が以下の壁にぶつかります。先輩として、解決策を授けておきます。

① `.ClearFormatting` を忘れる

検索設定は「前回の履歴」を引き継ぎます。前回「太字」を検索していたら、今回も太字の条件が残ってしまい、結果が0件になることがよくあります。検索の最初には必ずリセットの儀式を。

② `Selection` を使ってしまう

マクロの記録を使うと `Selection.Find` が生成されますが、これはカーソルを動かしながら検索するため非常に低速です。`Range` オブジェクトを使い、「見えない場所で高速に処理を終わらせる」のがプロの作法です。

③ `wdStyleHeading1` が見つからない

スタイル名は文書のテンプレートによって微妙に表記が異なることがあります。確実を期すなら、`ActiveDocument.Styles(“見出し 1”)` のように文字列で指定するのも一つの手です。

—

4. 次のステップ:正規表現への招待

上記の検索は「完全一致」ですが、実務では「【A-01】」や「【B-02】」のようなパターン化された見出しが多いはずです。

Word VBAは標準では正規表現(ワイルドカード)が少し特殊です。検索オプションで `.MatchWildcards = True` を設定すると、`[A-Z]-[0-9]{2}` といったパターンで検索が可能になります。

「特定のパターンを見つけ、そこに構造的意味(スタイル)を与える」

このループを組めるようになれば、あなたはもうWordの自動化において、脱・初心者といって過言ではありません。

—

最後に:自動化は「文書への敬意」です

Wordのスタイルを整えることは、単なる見た目の修正ではありません。それは、文書を読み解く人や、後から修正を加えるシステムに対する「情報の地図」を提供することです。

まずはこのコードをコピーして、手元の文書で試してみてください。「魔法のように一瞬で文書が整理される快感」。それを一度味わえば、もう二度と手動で書式をいじることはなくなるはずです。

何か不明な点があれば、いつでも聞いてください。あなたの自動化の旅を、全力でサポートしますよ。

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