【VBA】条件付き書式を使用して、条件を満たしているセルの書式(文字色、背景色)を変更する

VBAで
 ・条件を満たしているセルの
 ・書式(文字色、背景色)を変更
できます!

条件付き書式により
実現できます!

簡易なコードで実現できます!
そのため
 ・ループ処理で各セルを確認し、
 ・条件を満たしているかどうかを判定する
といったやり方は不要です!

ループ処理が不要のため、
処理の高速化が期待できます!

ここでは以下の場合に
 ・書式(文字色、背景色)を変更する方法
を記載します!

●~より大きい/小さい
・指定した数値より大きい場合
・指定した数値より小さい場合
●~以上/以下
・指定した数値以上の場合
・指定した数値以下の場合
●~の間/間でない
・指定した数値と数値の間の場合
・指定した数値と数値の間でない場合
●~と等しい/等しくない
・指定したと値と等しい場合
・指定したと値と等しくない場合

PR

指定した数値より大きい場合

ここでは例として、シート「sample」のセル「C3~E5」の設定値の数値が
 ・1000より大きい場合に、
 ・文字色を赤
 ・セルの背景色を薄いピンク色
にするVBAコードを記載します。

Sub sample()
    
    '条件付き書式。値が1000より大きい場合
    With Worksheets("sample").Range("C3:E5").FormatConditions.Add(Type:=xlCellValue, Operator:=xlGreater, Formula1:="1000")
        '文字色を赤にする
        .Font.Color = XlRgbColor.rgbRed
        '背景色を薄いピンクにする
        .Interior.Color = XlRgbColor.rgbLightPink
    End With
    
End Sub

「FormatConditions.Add」の引数に以下を指定します。

Type・・・・・xlCellValue
Operator・・・xlGreater
Formula1・・・数値(上記では「1000」を指定)

実行結果は以下です。

実行結果
実行結果
PR

指定した数値より小さい場合

ここでは例として、シート「sample」のセル「C3~E5」の設定値の数値が
 ・1000より小さい場合に、
 ・文字色を赤
 ・セルの背景色を薄いピンク色
にするVBAコードを記載します。

Sub sample()
    
    '条件付き書式。値が1000より小さい場合
    With Worksheets("sample").Range("C3:E5").FormatConditions.Add(Type:=xlCellValue, Operator:=xlLess, Formula1:="1000")
        '文字色を赤にする
        .Font.Color = XlRgbColor.rgbRed
        '背景色を薄いピンクにする
        .Interior.Color = XlRgbColor.rgbLightPink
    End With
    
End Sub

「FormatConditions.Add」の引数に以下を指定します。

Type・・・・・xlCellValue
Operator・・・xlLess
Formula1・・・数値(上記では「1000」を指定)

実行結果は以下です。

実行結果
実行結果
PR

指定した数値以上の場合

ここでは例として、シート「sample」のセル「C3~E5」の設定値の数値が
 ・1000以上の場合に、
 ・文字色を赤
 ・セルの背景色を薄いピンク
にするVBAコードを記載します。

Sub sample()
    
    '条件付き書式。値が1000以上の場合
    With Worksheets("sample").Range("C3:E5").FormatConditions.Add(Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:="1000")
        '文字色を赤にする
        .Font.Color = XlRgbColor.rgbRed
        '背景色を薄いピンクにする
        .Interior.Color = XlRgbColor.rgbLightPink
    End With
    
End Sub

「FormatConditions.Add」の引数に以下を指定します。

Type・・・・・xlCellValue
Operator・・・xlGreaterEqual
Formula1・・・数値(上記では「1000」を指定)

実行結果は以下です。

実行結果
実行結果
PR

指定した数値以下の場合

ここでは例として、シート「sample」のセル「C3~E5」の設定値の数値が
 ・1000以下の場合に、
 ・文字色を赤
 ・セルの背景色を薄いピンク
にするVBAコードを記載します。

Sub sample()
    
    '条件付き書式。値が1000以下の場合
    With Worksheets("sample").Range("C3:E5").FormatConditions.Add(Type:=xlCellValue, Operator:=xlLessEqual, Formula1:="1000")
        '文字色を赤にする
        .Font.Color = XlRgbColor.rgbRed
        '背景色を薄いピンクにする
        .Interior.Color = XlRgbColor.rgbLightPink
    End With
    
End Sub

「FormatConditions.Add」の引数に以下を指定します。

Type・・・・・xlCellValue
Operator・・・xlLessEqual
Formula1・・・数値(上記では「1000」を指定)

実行結果は以下です。

実行結果
実行結果
PR

指定した数値と数値の間の場合

ここでは例として、シート「sample」のセル「C3~E5」の設定値の数値が
 ・1~1000のの場合に、
 ・文字色を赤
 ・セルの背景色を薄いピンク
にするVBAコードを記載します。

Sub sample()
    
    '条件付き書式。値が1~1000の場合
    With Worksheets("sample").Range("C3:E5").FormatConditions.Add(Type:=xlCellValue, Operator:=xlBetween, Formula1:="1", Formula2:="1000")
        '文字色を赤にする
        .Font.Color = XlRgbColor.rgbRed
        '背景色を薄いピンクにする
        .Interior.Color = XlRgbColor.rgbLightPink
    End With
    
End Sub

「FormatConditions.Add」の引数に以下を指定します。

Type・・・・・xlCellValue
Operator・・・xlBetween
Formula1・・・数値(上記では「1」を指定)
Formula2・・・数値(上記では「1000」を指定)

実行結果は以下です。

実行結果
実行結果
PR

指定した数値と数値の間でない場合

ここでは例として、シート「sample」のセル「C3~E5」の設定値の数値が
 ・1~1000の間でない場合に、
 ・文字色を赤
 ・セルの背景色を薄いピンク
にするVBAコードを記載します。

Sub sample()
    
    '条件付き書式。値が1~1000でない場合
    With Worksheets("sample").Range("C3:E5").FormatConditions.Add(Type:=xlCellValue, Operator:=xlNotBetween, Formula1:="1", Formula2:="1000")
        '文字色を赤にする
        .Font.Color = XlRgbColor.rgbRed
        '背景色を薄いピンクにする
        .Interior.Color = XlRgbColor.rgbLightPink
    End With
    
End Sub

「FormatConditions.Add」の引数に以下を指定します。

Type・・・・・xlCellValue
Operator・・・xlNotBetween
Formula1・・・数値(上記では「1」を指定)
Formula2・・・数値(上記では「1000」を指定)

実行結果は以下です。

実行結果
実行結果
PR

指定したと値と等しい場合

ここでは例として、シート「sample」のセル「C3~E5」の設定値の数値が
 ・1000と等しい場合に、
 ・文字色を赤
 ・セルの背景色を薄いピンク
にするVBAコードを記載します。

Sub sample()
    
    '条件付き書式。値が1000の場合
    With Worksheets("sample").Range("C3:E5").FormatConditions.Add(Type:=xlCellValue, Operator:=xlEqual, Formula1:="1000")
        '文字色を赤にする
        .Font.Color = XlRgbColor.rgbRed
        '背景色を薄いピンクにする
        .Interior.Color = XlRgbColor.rgbLightPink
    End With
    
End Sub

「FormatConditions.Add」の引数に以下を指定します。

Type・・・・・xlCellValue
Operator・・・xlEqual
Formula1・・・数値(上記では「1000」を指定)

実行結果は以下です。

実行結果
実行結果
PR

指定したと値と等しくない場合

ここでは例として、シート「sample」のセル「C3~E5」の設定値の数値が
 ・1000と等しくない場合に、
 ・文字色を赤
 ・セルの背景色を薄いピンク
にするVBAコードを記載します。

Sub sample()
    
    '条件付き書式。値が1000でない場合
    With Worksheets("sample").Range("C3:E5").FormatConditions.Add(Type:=xlCellValue, Operator:=xlNotEqual, Formula1:="1000")
        '文字色を赤にする
        .Font.Color = XlRgbColor.rgbRed
        '背景色を薄いピンクにする
        .Interior.Color = XlRgbColor.rgbLightPink
    End With
    
End Sub

「FormatConditions.Add」の引数に以下を指定します。

Type・・・・・xlCellValue
Operator・・・xlNotEqual
Formula1・・・数値(上記では「1000」を指定)

実行結果は以下です。

実行結果
実行結果
PR

備考(全ての条件付き書式をクリア)

シート「sample」のセル「C3~E5」に設定されている条件付き書式をクリアするVBAコードは以下です。

Sub sample()
    'シート「sample」のセル「C3~E5」に設定されている条件付き書式をクリア
    Worksheets("sample").Range("C3:E5").FormatConditions.Delete
End Sub


シート「sample」の全ての条件付き書式をクリアするVBAコードは以下です。

Sub sample()
    'シート「sample」のに設定されている全ての条件付き書式をクリア
    Worksheets("sample").Cells.FormatConditions.Delete
End Sub
PR

参考①

上記のVBAコードでは、色の指定に列挙体「XlRgbColor」を使用しています。

列挙体「XlRgbColor」の詳細は、以下の記事をご確認ください。

PR

参考②

列挙体そのものについては、以下の記事をご確認ください。

PR

参考③

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●「Rangeオブジェクト」の「FormatConditions」プロパティ
※「FormatConditionsオブジェクト」を取得します。


●「FormatConditionsオブジェクト」の「Add」メソッド
※「新しい条件付き書式」を追加します。(「FormatConditionオブジェクト」を取得します)


●上記の「Add」メソッドの引数「Operator」に指定できる値


●「FormatConditionsオブジェクト」の「Delete」メソッド
※「条件付き書式」を削除します。

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