スポンサーリンク

【VBA】条件付き書式を更新・削除する方法(Modify・Deleteの活用)

条件付き書式を 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 個別削除)
  • 実務では「一旦削除してから新規追加」パターンもよく使う

条件付き書式を「追加するだけ」でなく「更新・削除」まで理解すると、効率的に管理できるようになります。

コメント

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