表のヘッダ
表形式のデータ管理は多くの人が行うことで、だからこそExcelを使っているとも言えます。標準の機能でも、テーブル機能(挿入タブ→テーブル)が用意されており、気軽にカラフルな表を作成することが可能です。
そのように多くの場面で利用する表データですが、表自体の体裁は結構手間が掛かります。少なくとも表のヘッダ(先頭行)を見出しとして背景色を付けるぐらいは多くの方がやっていると思います。あとは最下段の合計欄の太字などでしょうか。
以下は、それを自動化するマクロです。
表のヘッダの判定方法
表のヘッダ部分に背景色を付けるためには、そのセルがどこなのかを事前に判定しておく必要があります。
その判定にはCurrentRegionプロパティを利用します。なお、表を選択する方法については以下でも解説しています。
⇒VBAで表全体を選択する
サンプルコード
指定セルが含まれる表をCurrentRegionプロパティで参照します。
表の1行目は Rows(1) で表します。表の最終行は Rows(表のRangeオブジェクト.Rows.Count) で表します。
最後に背景色を設定します。ここではColorIndexを使っていますが、ThemeColorプロパティに変更しても問題ありません。また、表の一番下の行を合計欄用として太字にしています。
表ヘッダ背景色設定関数
1 2 3 4 5 6 7 8 9 10 11 |
Sub SetTableHeaderColor(rCell As Range) Dim r As Range Set r = rCell.CurrentRegion '// 先頭行に背景色を設定 r.Rows(1).Interior.ColorIndex = 6 '// 最終行を太字に設定 r.Rows(r.Rows.Count).Font.Bold = True End Sub |
表ヘッダ背景色設定関数の呼び出し方サンプル
上記関数を呼び出し元の関数です。指定するセルは表に含まれているセルであればどこでも構いません。
1 2 3 |
Sub SetTableHeaderColorTest() Call SetTableHeaderColor(Range("C5")) End Sub |
実行前
実行後