Excelのテーブル(ListObject)は、データを整理して管理しやすくする強力な機能です。しかし、大量のデータを扱うと「どの数値が基準以上か」「特定条件に当てはまる行はどれか」といった判断が難しくなることがあります。
そこで活用したいのが 条件付き書式 です。条件付き書式をテーブルに適用することで、指定条件に応じてセルの色を自動で変えられるため、見やすく直感的な一覧表を作成できます。
この記事では、VBAを使ってテーブルに条件付き書式を自動適用する方法を解説します。
1. 条件付き書式とテーブルを組み合わせるメリット
- 見やすいデータ一覧
数値や条件に応じて自動的に色が付くため、重要なデータを一目で把握できます。 - テーブル範囲が自動で拡張
通常の範囲に条件付き書式を設定すると、データを追加した際に書式が反映されないことがあります。
しかし、テーブルに設定すれば 行が増えても自動的に条件付き書式が適用 されます。 - 手作業のルール設定が不要に
VBAで一度コードを書いておけば、繰り返し条件付き書式を設定する必要がなくなります。
2. 条件付き書式をテーブルに適用する基本コード
以下は「売上金額が10,000以上の場合、そのセルを黄色で強調表示する」という条件付き書式をテーブルに設定する例です。
Sub TableWithConditionalFormatting()
Dim ws As Worksheet
Dim tbl As ListObject
Dim targetCol As Range
'対象のシートを指定
Set ws = ThisWorkbook.Sheets("Sheet1")
'シート内の1つ目のテーブルを取得
Set tbl = ws.ListObjects(1)
'条件付き書式を適用する列(例:3列目が「売上金額」)
Set targetCol = tbl.ListColumns(3).DataBodyRange
'既存の条件付き書式をクリア
targetCol.FormatConditions.Delete
'条件付き書式を追加(10000以上で黄色)
targetCol.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:="10000"
targetCol.FormatConditions(1).Interior.Color = vbYellow
End Sub
3. コード解説
tbl.ListColumns(3).DataBodyRange
→ テーブルの3列目(例:売上金額列)のデータ部分だけを範囲として取得。FormatConditions.Delete
→ 既存の条件付き書式を削除し、二重設定を防止。FormatConditions.Add
→ 条件を追加。ここでは「セルの値が10000以上」で判定。.Interior.Color = vbYellow
→ 条件を満たしたセルの背景色を黄色に設定。
4. 実行例
例えば次のようなテーブルがあるとします:
| 商品名 | 数量 | 売上金額 |
|---|---|---|
| りんご | 20 | 4000 |
| バナナ | 50 | 12000 |
| ぶどう | 15 | 15000 |
上記のコードを実行すると、「売上金額」が 10,000以上のセル(バナナ・ぶどう) が黄色で強調表示されます。
5. 応用例:行全体をハイライトする
数値だけでなく、条件に応じて行全体を強調することも可能です。
例:売上金額が10,000以上の行を水色にする
Sub HighlightRowsByCondition()
Dim ws As Worksheet
Dim tbl As ListObject
Dim targetRange As Range
'対象のシートを指定
Set ws = ThisWorkbook.Sheets("Sheet1")
'シート内の1つ目のテーブルを取得
Set tbl = ws.ListObjects(1)
'テーブルのデータ部分を取得
Set targetRange = tbl.DataBodyRange
'既存の条件付き書式を削除
targetRange.FormatConditions.Delete
'数式を使って条件設定(3列目=売上金額が10000以上)
targetRange.FormatConditions.Add Type:=xlExpression, Formula1:="=$C2>=10000"
targetRange.FormatConditions(1).Interior.Color = RGB(200, 230, 250) '水色
End Sub
これを実行すると、「売上金額が基準以上の行」がまるごと強調表示され、一覧表がより見やすくなります。
6. まとめ
- 条件付き書式とテーブルを組み合わせると、動的に見やすい一覧表が作れる
FormatConditions.Addで条件を追加できる- 列単位の強調だけでなく、数式を使えば 行全体をハイライト できる
- 新しいデータが追加されても、テーブルなら自動的に条件付き書式が適用される
コメント