VBAのFor Eachで、Range()を使えば範囲を調べられるそうなので、まとめです。
たとえば、Excelのシートにこういうデータがあるとして、
B2:C5の範囲にマイナス値のセルを赤字+太字にしたい場合、以下のようになります。
Sub 負数に色を付ける()
Dim c As Range
'For Each にRangeが使える
For Each c In Range("B2:C5").Cells 'B2:C5の範囲
'マイナス値なら赤色にする
If c.Value < 0 Then
c.Select
With Selection.Font
.Color = RGB(255, 0, 0) '赤色
.Bold = True
End With
End If
Next
End Sub
For Each c In Range(“B2:C5”).Cells
で、B2:C5の全てのセルを精査できます。
※「.Cells」は付けた方が良いようです。
参考:For Each ○ In Range はセルごとのループとは限らない
結果、マイナス値を赤字+太字にできました。
ちなみに、For Eachを使わず、Cells(y,x)で1つずつチェックする場合は、以下のようになるかと思います。
Sub 負数に色を付ける2()
Dim x As Long
Dim y As Long
For y = 2 To 5 '2行目から5行目
For x = 2 To 3 '"B"~"C"
'マイナス値なら赤色にする
If Cells(y, x) < 0 Then
Cells(y, x).Select
With Selection.Font
.Color = RGB(255, 0, 0) '赤色
.Bold = True
End With
End If
Next
Next
End Sub
コメント