Excelで表を作成する際、最初の行(タイトル行)だけ太字にしたり、背景色を付けたりすることで、見た目が整い、読み手にとっても分かりやすくなります。
しかし、毎回手作業で書式設定を行うのは、意外と面倒です。特に複数の表がある資料では、作業の手間もミスも増えてしまいます。
そこで今回は、「表のタイトル行を自動で装飾するマクロ」を紹介します。
シンプルなコードで業務の効率が上がり、資料の見栄えも整う便利なテクニックです。
1行目を自動で装飾する基本マクロ
次のコードは、アクティブシートの1行目を対象に、太字・背景色・文字色を設定します。
Sub FormatHeaderRow()
Dim rng As Range
Set rng = Rows(1)
With rng.Font
.Bold = True ' 太字に設定
.Color = RGB(255, 255, 255) ' 白文字
End With
rng.Interior.Color = RGB(0, 102, 204) ' 背景を濃い青に
End Sub
解説
Rows(1)で1行目全体を対象にしています。Font.Bold = Trueで太字に、Font.Colorで文字色を白に変更。Interior.Colorで背景色を指定(ここでは濃い青にしています)。
シンプルなコードですが、毎回の装飾作業が一瞬で完了するようになります。
データ範囲を自動で取得し、その1行目だけ装飾
次のコードでは、任意の表の範囲(A1セルから広がっている表)を自動で検出し、最上部の行だけを装飾します。
Sub FormatTableHeader()
Dim tbl As Range
Dim rng As Range
' A1セルから連続した範囲を取得
Set tbl = Range("A1").CurrentRegion
' 最初の1行だけを取得
Set rng = tbl.Rows(1)
With rng.Font
.Bold = True
.Color = RGB(255, 255, 255)
End With
rng.Interior.Color = RGB(0, 153, 76) ' 緑系の背景
End Sub
補足とメリット
CurrentRegionを使うと、空白セルで囲まれた連続データを一括で取得できます。- その中の
Rows(1)を装飾することで、表の範囲が変わっても自動対応できます。
表が複数あるシートでも、1つ1つ選び直す必要がありません。
実装するメリット
このようなマクロを用意しておくと、以下のようなメリットがあります。
- 表のタイトル行が自動的に目立つようになり、資料の見た目が整う
- 毎回マウスで選択して書式を設定する手間がなくなる
- 装飾の「ばらつき」がなくなり、統一感が出る
- 表の更新や追加に素早く対応できる
まとめ
表のタイトル行は、読み手にとって最初に目に入る「大切な部分」です。
この部分を自動的に装飾することで、資料全体の品質がぐっと向上します。
今回紹介したようなマクロは、ほんの数行で作れますが、実務の効率化には非常に効果的です。
テンプレートとして組み込んでおけば、毎回の作業を大幅に時短できるので、ぜひ業務に取り入れてみてください。
