Excelでよく使われる 条件付き書式 は、特定の条件に応じてセルの色や文字のスタイルを自動で変更できる便利な機能です。
マウス操作でも設定できますが、VBAを使うことで「複数範囲に一括適用」「繰り返し処理」などを効率的に行えます。
この記事では、指定した範囲(Range)に条件付き書式を適用する方法 をサンプルコード付きで分かりやすく解説します。
1. 基本の書き方
まずはシンプルな例です。
「A1:A10 のセルで、値が100以上なら背景を黄色にする」 条件付き書式を設定します。
Sub 条件付き書式_基本例()
Dim rng As Range
Set rng = Range("A1:A10") '対象範囲を指定
'条件付き書式を追加
rng.FormatConditions.Add _
Type:=xlCellValue, _
Operator:=xlGreaterEqual, _
Formula1:="100"
'書式の設定(背景色を黄色にする)
rng.FormatConditions(1).Interior.Color = RGB(255, 255, 0)
End Sub
2. コードの解説
Set rng = Range("A1:A10")
→ 条件付き書式を適用する範囲を変数rng
に格納しています。FormatConditions.Add
→ 条件付き書式を新しく追加するメソッドです。- 引数の指定
Type:=xlCellValue
→ 「セルの値」を基準に判定します。Operator:=xlGreaterEqual
→ 「以上(>=)」を意味します。Formula1:="100"
→ 比較する値(100)を指定します。
- 書式の設定
rng.FormatConditions(1)
は最初に追加された条件を指します。.Interior.Color = RGB(255, 255, 0)
で背景色を黄色にしています。
3. 複数条件を追加する場合
条件付き書式は複数追加できます。
例えば「100以上は黄色、200以上は赤色」にしたい場合は次のように書きます。
Sub 条件付き書式_複数条件()
Dim rng As Range
Set rng = Range("A1:A10")
'条件1:100以上 → 黄色
rng.FormatConditions.Add Type:=xlCellValue, _
Operator:=xlGreaterEqual, Formula1:="100"
rng.FormatConditions(1).Interior.Color = RGB(255, 255, 0)
'条件2:200以上 → 赤色
rng.FormatConditions.Add Type:=xlCellValue, _
Operator:=xlGreaterEqual, Formula1:="200"
rng.FormatConditions(2).Interior.Color = RGB(255, 0, 0)
End Sub
👉 条件は追加した順番に判定されます。
複数条件を組み合わせると、データに応じて色分けする強力な仕組みが作れます。
4. 既存の条件付き書式を削除する
同じ範囲に繰り返し設定すると条件が増えすぎてしまうことがあります。
その場合は、設定前にいったん削除してから新しく追加するのがおすすめです。
Sub 条件付き書式_削除してから追加()
Dim rng As Range
Set rng = Range("A1:A10")
'既存の条件付き書式を削除
rng.FormatConditions.Delete
'新しい条件を設定
rng.FormatConditions.Add _
Type:=xlCellValue, _
Operator:=xlLess, _
Formula1:="50"
rng.FormatConditions(1).Font.Color = RGB(255, 0, 0) '赤文字
End Sub
5. まとめ
- 条件付き書式は
FormatConditions.Add
を使って設定する Type
とOperator
を指定して条件を決める- 書式は
Interior.Color
やFont.Color
で設定できる - 複数条件を追加したり、不要になったら削除することも可能
VBAを使えば、範囲指定を柔軟に行いながら大量のデータに一括で条件付き書式を適用できます。
コメント