条件付き書式を VBA で扱う場合、単に新規追加するだけでなく、既存ルールを更新(Modify)したり削除(Delete)したりする 操作も重要です。
ここでは、よく使う書式更新パターンを解説します。
目次
1. 条件付き書式の更新(Modify)
すでに設定済みの条件付き書式は、Modify
メソッドで 条件や書式を上書き できます。
サンプルコード
Sub UpdateConditionalFormat()
Dim rng As Range
Set rng = Range("A1:A10")
'すでに1つ目の条件付き書式があると仮定して更新
rng.FormatConditions(1).Modify _
Type:=xlCellValue, Operator:=xlGreater, Formula1:="200"
'書式の設定(赤文字に変更)
rng.FormatConditions(1).Font.Color = vbRed
End Sub
解説
FormatConditions(1)
→ 1つ目の条件付き書式を参照.Modify
→ 判定条件を変更(ここでは「200より大きい」).Font.Color
→ 書式(文字色)を変更
👉 新しく追加するのではなく、既存ルールをそのまま変更できる点がメリットです。
2. 条件付き書式の削除(Delete)
不要なルールを削除するには、Delete
を使います。
サンプルコード
Sub DeleteConditionalFormat()
Dim rng As Range
Set rng = Range("A1:A10")
'A1:A10 のすべての条件付き書式を削除
rng.FormatConditions.Delete
End Sub
解説
FormatConditions.Delete
→ 指定範囲のすべての条件付き書式を削除- 個別削除は
FormatConditions(1).Delete
のように指定可能
3. 新しい書式に置き換えるパターン
実務では「一旦削除してから新しい条件付き書式を設定する」ケースも多いです。
サンプルコード
Sub ReplaceConditionalFormat()
Dim rng As Range
Set rng = Range("A1:A10")
'既存のルールを削除
rng.FormatConditions.Delete
'新しい条件を追加(100以上なら太字・青色)
rng.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="100"
rng.FormatConditions(1).Font.Bold = True
rng.FormatConditions(1).Font.Color = vbBlue
End Sub
解説
.Delete
→ 既存ルールを消去.Add
→ 新しい条件を追加.Font
や.Interior
で見やすくカスタマイズ
4. Modify と Delete の使い分け
- ルール内容をちょっと修正したい →
.Modify
- 既存のルールを全部入れ替えたい →
.Delete
→.Add
5. まとめ
.Modify
→ 既存ルールを編集(条件や書式を上書き).Delete
→ 条件付き書式を削除(全削除 or 個別削除)- 実務では「一旦削除してから新規追加」パターンもよく使う
条件付き書式を「追加するだけ」でなく「更新・削除」まで理解すると、効率的に管理できるようになります。
コメント