スポンサーリンク

【VBA応用】テーブルと条件付き書式を組み合わせて見やすい一覧表を自動生成する方法

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. 実行例

例えば次のようなテーブルがあるとします:

商品名数量売上金額
りんご204000
バナナ5012000
ぶどう1515000

上記のコードを実行すると、「売上金額」が 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 で条件を追加できる
  • 列単位の強調だけでなく、数式を使えば 行全体をハイライト できる
  • 新しいデータが追加されても、テーブルなら自動的に条件付き書式が適用される

コメント

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