条件付き書式を設定してセルに色をつける

2025年06月27日

条件付き書式を設定してセルに色をつける方法を説明した画像です。

条件付き書式の設定方法

条件付き書式は下記の画像のように数式などで条件を指定して、特定のセルのみ書式を変更する機能です。
下記の場合は、数式の欄に「=$A1>10」と記載されています。これは、A1セルが10より大きい場合にセルの書式を変更するという意味になります。

条件付き書式を設定してセルに色をつける方法を説明した画像です。

上記の画像はA1セルの列のみを固定しているため、下記の画像のように適用先をA列全てにすることでA列全体で条件付き書式が反映されます。

条件付き書式を設定してセルに色をつける方法を説明した画像です。

条件付き書式をVBAで設定する

続きまして、先ほどご紹介した条件付き書式の設定をVBAで行います。
動的に条件付き書式を変更したい場合などに有効な方法です。

下記のサンプルコードを実行すると、A列全体に10より値が大きかった場合に黄色に塗りつぶす条件付き書式が設定されます。


Sub 条件付き書式を設定()
    
    Dim rng As Range
    
    '条件付き書式を設定するセルを指定します(下記の場合はA列全て)
    Set rng = Columns("A")
    
    '条件付き書式を追加します
    rng.FormatConditions.Add Type:=xlExpression, Formula1:="=$A1>10"
    
    '黄色に塗りつぶす設定を行います
    rng.FormatConditions(rng.FormatConditions.Count).Interior.Color = RGB(255, 255, 0) '←RGB(255, 255, 0) = 黄色
    
    Set rng = Nothing

End Sub
    

Type:=xlExpressionで数式を使用して設定するという意味になり、Formula1:="=$A1>10"で数式を指定しています。


上記のコードを実行すると、A列全体に条件付き書式が追加されます。

条件付き書式を設定してセルに色をつける方法を説明した画像です。

VBAで条件付き書式を削除する

条件付き書式でよくあるトラブルがコピーなどを行うことにより、条件付き書式が知らぬ間に増えて行ってしまうということがあります。
これを防ぐためには、VBAで既に設定されている条件付き書式を削除して、再度条件付き書式を設定し直すという方法が有効です。
下記は、シート上の条件付き書式をすべて削除する方法です。
※下記のコードを実行する場合は、本当に削除してよい条件付き書式かを確認したうえで実行してください。
 心配な場合は、バックアップをとったうえで実行してください。


Cells.FormatConditions.Delete
    

先ほど設定した条件付き書式が全て削除されました。

条件付き書式を設定してセルに色をつける方法を説明した画像です。

上記を応用して、シート上の条件付き書式を全て削除した後に、条件付き書式を設定し直す方法です。
この方法を使用することで、条件付き書式が知らぬ間に増えていったとしても、下記のコードを実行すれば元の状態に戻すことができます。


Sub 条件付き書式を設定()
    
    Dim rng As Range
    
    '条件付き書式を設定する前に、既に設定されている条件付き書式を削除
    Cells.FormatConditions.Delete

    '条件付き書式を設定するセルを指定します(下記の場合はA列全て)
    Set rng = Columns("A")

    '条件付き書式を追加します
    rng.FormatConditions.Add Type:=xlExpression, Formula1:="=$A1>10"

    '黄色に塗りつぶす設定を行います
    rng.FormatConditions(rng.FormatConditions.Count).Interior.Color = RGB(255, 255, 0) '←RGB(255, 255, 0) = 黄色

    Set rng = Nothing

End Sub

    

関連記事

条件に一致する行を取得する方法
入力できるメッセージボックス「InputBox」を表示させる
対象のセル範囲にスペース(空白)が含まれている値を削除する方法