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 Sub3. コード解説
- 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で条件を追加できる
- 列単位の強調だけでなく、数式を使えば 行全体をハイライト できる
- 新しいデータが追加されても、テーブルなら自動的に条件付き書式が適用される
 
  
  
  
  
コメント