【VBA】複数列・複数条件を一括で条件付き書式に適用する実例

条件付き書式をVBAで使うとき、実務では 複数列をまとめて対象にしたい 場面や、複数条件を組み合わせて適用したい 場面がよくあります。
GUI操作では煩雑になりがちですが、VBAを使えば効率よく一括設定できます。


スポンサーリンク

1. 複数列を一度に対象にする方法

例:A列とC列の値が100以上なら背景を黄色にする

Sub 条件付き書式_複数列()
    Dim rng As Range
    
    'A列とC列を対象範囲に指定
    Set rng = Union(Range("A2:A20"), Range("C2:C20"))
    
    '既存の条件付き書式を削除
    rng.FormatConditions.Delete
    
    '条件付き書式を追加(100以上 → 黄色背景)
    rng.FormatConditions.Add _
        Type:=xlCellValue, _
        Operator:=xlGreaterEqual, _
        Formula1:="100"
    
    rng.FormatConditions(1).Interior.Color = RGB(255, 255, 0)
End Sub

👉 Union関数 を使えば、離れた列や範囲をまとめて指定できます。


スポンサーリンク

2. 複数条件を一括で適用する方法

例:B列に対して「50未満なら赤文字」「200以上なら緑背景」

Sub 条件付き書式_複数条件()
    Dim rng As Range
    Set rng = Range("B2:B20")
    
    '既存の条件付き書式を削除
    rng.FormatConditions.Delete
    
    '条件1:50未満 → 赤文字
    rng.FormatConditions.Add _
        Type:=xlCellValue, _
        Operator:=xlLess, _
        Formula1:="50"
    rng.FormatConditions(1).Font.Color = RGB(255, 0, 0)
    
    '条件2:200以上 → 緑背景
    rng.FormatConditions.Add _
        Type:=xlCellValue, _
        Operator:=xlGreaterEqual, _
        Formula1:="200"
    rng.FormatConditions(2).Interior.Color = RGB(0, 255, 0)
End Sub

👉 条件は 追加された順番 に評価されます。
もし条件が重なる場合は、先に追加された条件が優先される点に注意しましょう。


スポンサーリンク

3. 複数列 × 複数条件を組み合わせる実例

例:A列とC列を対象に「100未満は赤文字」「200以上は黄色背景」

Sub 条件付き書式_複数列複数条件()
    Dim rng As Range
    
    '複数列をまとめて指定
    Set rng = Union(Range("A2:A20"), Range("C2:C20"))
    
    '既存の条件付き書式を削除
    rng.FormatConditions.Delete
    
    '条件1:100未満 → 赤文字
    rng.FormatConditions.Add _
        Type:=xlCellValue, _
        Operator:=xlLess, _
        Formula1:="100"
    rng.FormatConditions(1).Font.Color = RGB(255, 0, 0)
    
    '条件2:200以上 → 黄色背景
    rng.FormatConditions.Add _
        Type:=xlCellValue, _
        Operator:=xlGreaterEqual, _
        Formula1:="200"
    rng.FormatConditions(2).Interior.Color = RGB(255, 255, 0)
End Sub

👉 実務では「基準値に応じた判定」「複数列まとめてチェック」という場面が非常に多いです。


4. 実務での活用例

  • 売上データで「目標未達は赤文字」「達成は緑背景」
  • 複数列の数値をまとめてチェックし、一定条件で強調表示
  • 成績管理で「60点未満は赤」「90点以上は青」といった色分け

5. まとめ

  • 複数列は Union を使って範囲をまとめて指定できる
  • 複数条件は FormatConditions.Add を繰り返し追加する
  • 条件の評価は 追加順に行われる ため、優先度を意識する
  • 実務では「複数列 × 複数条件」の組み合わせがよく使われる

コメント

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