【入門編】【初心者向け】表の全セルに対してフォントサイズと行間を一括適用するマクロ – Word VBA解析バイブル

スポンサーリンク

ようこそ、Word VBAの世界へ。
「マクロの記録」ボタンを押すだけの世界から、自分の手でドキュメントを自在に操る「エンジニア」の世界へと足を踏み入れたあなたを歓迎します。

Wordの表(Table)は、VBAにおいて最も「美しく制御するのが難しい」オブジェクトの一つです。なぜなら、セル、行、列、そしてその中身のRange(範囲)という階層構造が複雑に絡み合っているからです。

今日は、ドキュメント内の全ての表を掌握し、デザインを強制的に統一するプロの作法を伝授します。ここをクリアすれば、あなたはもう「初心者」ではありません。

—

1. なぜ「全セル一括適用」が重要なのか?

業務ドキュメントにおいて、表のデザインがバラバラなのは「死」を意味します。フォントサイズが微妙に違ったり、行間が詰まっていたりすると、読み手の集中力を削ぐからです。

手作業で一つずつ修正しますか? それはエンジニアの仕事ではありません。「ドキュメント内の全表をループで巡回し、一瞬でスタイルを適用する」。これが、自動化の第一歩です。

2. 実践!Word VBAによる表のデザイン強制適用コード

まずは、何も考えずに以下のコードをコピーして、VBAエディタ(Alt + F11)に貼り付けてみてください。

Sub ApplyUniformTableStyle()
Dim tbl As Table
Dim rng As Range

‘ ドキュメント内のすべての表をループする
For Each tbl In ActiveDocument.Tables
‘ 1. 表全体のフォントサイズを一括設定
tbl.Range.Font.Size = 10.5

‘ 2. 行間(段落書式)を設定する
‘ Wordの行間はParagraphFormatオブジェクトで制御します
With tbl.Range.ParagraphFormat
.LineSpacingRule = wdLineSpaceSingle ‘ 1行固定
.SpaceBefore = 0 ‘ 段落前後の余白をリセット
.SpaceAfter = 0
End With

‘ 3. 【プロの知見】セルの配置を整える(垂直中央揃え)
tbl.VerticalAlignment = wdCellAlignVerticalCenter
Next tbl

MsgBox “すべての表のデザイン統一が完了しました。”, vbInformation
End Sub

3. コードの「魂」を読み解く:ここが重要!

このコードは、ただ動くだけではありません。「オブジェクトの階層構造」を理解するためのエッセンスが詰まっています。

① `For Each tbl In ActiveDocument.Tables`

これがWord VBAにおける最強のループ文です。「ドキュメントの中にある表という表をすべて捕まえろ」という命令です。`For i = 1 To …` と書くよりも、読みやすくエラーが起きにくい「プロの書き方」です。

② `tbl.Range` の正体

`tbl.Range` は、その表全体を指し示す「範囲」です。これを使うことで、セルを一つずつ指定しなくても、表全体に対してフォントや段落の属性を一気に流し込むことができます。これがVBAの処理速度を劇的に向上させるコツです。

③ なぜ「Withステートメント」を使うのか?

`tbl.Range.ParagraphFormat` を何度も書くのは、非効率ですし記述ミスを誘発します。`With` を使うことで、コンピュータに対して「このオブジェクトに対して、以下の命令をまとめて実行せよ」と伝えることができ、コードが格段にスッキリします。

4. 初心者が陥りやすい「落とし穴」

コードを書いていて、こんなエラーが出たことはありませんか?

  • 「オブジェクトが必要」エラー:

これは、ドキュメントに表が一つも存在しない状態でループを回そうとしたときに起きがちです。実務では `If ActiveDocument.Tables.Count > 0 Then …` とガードをかけるのがプロの慎重さです。

  • 結合セルでの崩壊:

セルを結合している場合、`tbl.Range` への一括操作が予期せぬ挙動をすることがあります。そんな時は、素直にセル一つずつをループで回す(`For Each cell In tbl.Range.Cells`)という泥臭い方法に切り替える判断力も必要です。

5. 次のステップへ

今回のコードは、あくまで「基礎の基礎」です。
ここから発展させて、「表の1行目だけヘッダーとして背景色をグレーにする」「特定のキーワードが入っているセルだけ太字にする」といったロジックを組み込めば、あなたの業務効率は飛躍的に向上します。

Word VBAは、触れば触るほど、あなたの「分身」となって働いてくれます。
まずはこのコードを動かして、一瞬でドキュメントが美しく整う感覚を味わってください。

分からなくなったらいつでも聞きに来てください。エンジニアの世界へようこそ。一緒に、退屈な作業をこの世から消し去りましょう。

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