【VBA】範囲内にマイナス値があれば赤字にする

VBA

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

コメント

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