下の販売表に条件付き書式を設定します。
指定値と一致すればセルの文字色と背景色を変更する
条件付き書式のVBAです。
セルの値が1000ならば背景色をRGB(220, 220, 220)に、フォント色を赤にします。
- FormatConditions.Delete : 設定済みの条件付き書式をクリアします。
- Add : 条件付き書式を設定します。
- Type:=xlCellValue : セルの値が
- Operator:=xlEqual : 次の値に等しい場合
- Formula1:="1000" : 値に1000をセット
- Interior.Color : セルの背景色
- Font.ColorIndex : フォント色
Sub MyFormatConditions()
Range("B2:E14").FormatConditions.Delete
Range("B2:E14").FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="1000"
Range("B2:E14").FormatConditions(1).Interior.Color = RGB(220, 220, 220)
Range("B2:E14").FormatConditions(1).Font.ColorIndex = 3
End Sub
実行結果です。
1000のセルの背景色とフォント色が変更されています。
上と同じ処理をFor NextとIF文のVBAにしてみました。
条件付き書式のFormatConditionsを使った方が、簡単で分かり易そうです。
Sub MyVbaFormatConditions()
Dim i As Long
Dim j As Long
Range("B2:E14").Interior.ColorIndex = 2
Range("B2:E14").Font.ColorIndex = 1
For i = 2 To 14
For j = 2 To 5
If Cells(i, j) = 1000 Then
Cells(i, j).Interior.Color = RGB(220, 220, 220)
Cells(i, j).Font.ColorIndex = 3
End If
Next
Next
End Sub
指定した範囲の値と一致すればセルの文字色と背景色を変更する
セルの値が300から600の範囲ならば背景色と文字色を変更します。
- OperatorをxlBetweenにし、Formula1とFormula2を設定しています。
- FormatConditions(1)に、背景色と文字色の書式を設定しています。
Sub MyFormatConditions()
Range("B2:E14").FormatConditions.Delete
Range("B2:E14").FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, Formula1:="300", Formula2:="600"
Range("B2:E14").FormatConditions(1).Interior.Color = RGB(220, 220, 220)
Range("B2:E14").FormatConditions(1).Font.ColorIndex = 3
End Sub
範囲を設定した実行結果です。
複数の条件付き書式を設定する
300から600の範囲設定、1000の場合、977の場合の3つの条件付き書式を設定しています。
- 1つ目の300から600の範囲設定は、FormatConditions(1)で行います。
- 2つ目の1000の場合は、FormatConditions(2)で行います。
- 3つ目の977の場合は、FormatConditions(3)で行います。
Sub MyFormatConditions()
Range("B2:E14").FormatConditions.Delete
Range("B2:E14").FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, Formula1:="300", Formula2:="600"
Range("B2:E14").FormatConditions(1).Interior.Color = RGB(220, 220, 220)
Range("B2:E14").FormatConditions(1).Font.ColorIndex = 3
Range("B2:E14").FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="1000"
Range("B2:E14").FormatConditions(2).Font.ColorIndex = 4
Range("B2:E14").FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="977"
Range("B2:E14").FormatConditions(3).Font.ColorIndex = 5
End Sub
実行結果です。
- セルの値が300から600の背景色が、灰色で文字が赤色で表示されています。
- セルの値が1000の場合、緑色で表示されています。
- セルの値が977の場合、青色で表示されています。