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
実行結果は以下です。
指定した数値より小さい場合
ここでは例として、シート「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
実行結果は以下です。
指定した数値以上の場合
ここでは例として、シート「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
実行結果は以下です。
指定した数値以下の場合
ここでは例として、シート「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
実行結果は以下です。
指定した数値と数値の間の場合
ここでは例として、シート「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
実行結果は以下です。
指定した数値と数値の間でない場合
ここでは例として、シート「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
実行結果は以下です。
指定したと値と等しい場合
ここでは例として、シート「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
実行結果は以下です。
指定したと値と等しくない場合
ここでは例として、シート「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
実行結果は以下です。
備考(全ての条件付き書式をクリア)
シート「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
参考①
上記のVBAコードでは、色の指定に列挙体「XlRgbColor」を使用しています。
列挙体「XlRgbColor」の詳細は、以下の記事をご確認ください。
参考②
列挙体そのものについては、以下の記事をご確認ください。
参考③
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●「Rangeオブジェクト」の「FormatConditions」プロパティ
※「FormatConditionsオブジェクト」を取得します。
●「FormatConditionsオブジェクト」の「Add」メソッド
※「新しい条件付き書式」を追加します。(「FormatConditionオブジェクト」を取得します)
●上記の「Add」メソッドの引数「Operator」に指定できる値
●「FormatConditionsオブジェクト」の「Delete」メソッド
※「条件付き書式」を削除します。