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

条件付き書式を設定することで、
 ・条件を満たしているセルの書式(文字色、背景色)を変更
することが出来ます!

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

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

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

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

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

ここでは例として、シート「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」を指定)

実行結果は以下です。

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

ここでは例として、シート「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」を指定)

実行結果は以下です。

指定した数値以上の場合

ここでは例として、シート「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」を指定)

実行結果は以下です。

指定した数値以下の場合

ここでは例として、シート「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」を指定)

実行結果は以下です。

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

ここでは例として、シート「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」を指定)

実行結果は以下です。

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

ここでは例として、シート「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」を指定)

実行結果は以下です。

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

ここでは例として、シート「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」を指定)

実行結果は以下です。

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

ここでは例として、シート「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」を指定)

実行結果は以下です。

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

ここでは例として、シート「sample」のセル「C3~E5」に設定されている
全ての条件付き書式をクリアするVBAコードを記載します。

Sub sample()
    '全ての条件付き書式をクリア
    Worksheets("sample").Range("C3:E5").FormatConditions.Delete
End Sub

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