条件付き書式では、単純な「セルの値が〇〇なら強調」だけでなく、複数条件を組み合わせた判定も可能です。
その際に使うのが AND
や OR
関数 です。
1. 基本の考え方
- AND関数
複数の条件がすべて満たされた場合にTRUE
となる。=AND($B2="未処理",$C2<DATE(2025,4,1))
→ B列が「未処理」かつ C列が 2025/4/1 より前なら条件成立 - OR関数
複数の条件のうち1つでも満たされた場合にTRUE
となる。=OR($D2="高",$E2>100)
→ D列が「高」または E列が100超なら条件成立
2. VBAコード例(AND条件)
「B列が『未処理』かつ C列の日付が4月1日以前なら行全体を灰色にする」例です。
Sub 条件付き書式_AND条件()
Dim rng As Range
Set rng = Range("A2:E20")
rng.FormatConditions.Add _
Type:=xlExpression, _
Formula1:="=AND($B2=""未処理"", $C2<DATE(2025,4,1))"
rng.FormatConditions(1).Interior.Color = RGB(200, 200, 200)
End Sub
3. VBAコード例(OR条件)
「D列が『高』または E列が100を超える場合に行全体を黄色にする」例です。
Sub 条件付き書式_OR条件()
Dim rng As Range
Set rng = Range("A2:E20")
rng.FormatConditions.Add _
Type:=xlExpression, _
Formula1:="=OR($D2=""高"", $E2>100)"
rng.FormatConditions(1).Interior.Color = RGB(255, 255, 150)
End Sub
4. AND/OR の組み合わせ
もちろん、AND と OR を組み合わせてさらに複雑な条件を作ることも可能です。
例:「B列が『未処理』かつ(C列が4月1日以前 または D列が『高』)」なら赤色にする
Sub 条件付き書式_AND_OR組み合わせ()
Dim rng As Range
Set rng = Range("A2:E20")
rng.FormatConditions.Add _
Type:=xlExpression, _
Formula1:="=AND($B2=""未処理"", OR($C2<DATE(2025,4,1), $D2=""高""))"
rng.FormatConditions(1).Interior.Color = RGB(255, 150, 150)
End Sub
5. ポイント
- 数式条件は「TRUE/FALSE」を返す式にする
- **カンマ区切り(,)**で条件を並べる(Excelの地域設定によっては
;
の場合もあり) - 複雑な条件でも 括弧を意識して優先順位を明確にするとエラーを防げる
6. まとめ
- AND → 複数条件すべてを満たす場合
- OR → 複数条件のうち1つでも満たす場合
- 組み合わせれば、実務的な「ステータス・日付・金額などを総合判定」した条件付き書式が可能
コメント