
For~Next の入れ子を3重構造で使う
Excelのマクロでセルの背景色やフォントの色を指定するときは、ColorIndexプロパティを使う方法と、Colorプロパティ(Excel2007以降)を使う方法の2通りあります。
37回では、For~Next を入れ子にすることで、ColorIndexをセル範囲に表示しました。
今回は、もっと多彩な色を使いたい時のためにRGB関数を使って、色の一覧表を作成します。
(サンプルファイルは、こちらから 2013マクロ講座38回サンプルデータ)

Sub rgbirobango()
Dim 行 As Integer, 列 As Integer, R As Integer, g As Integer, B As Integer
行 = 0
For R = 0 To 256 Step 32 ' 赤の割合を32づつ増やします。
For g = 0 To 256 Step 32 ' 緑の割合を32づつ増やします。
行 = 行 + 1 ' 行の値に+1します。
For B = 0 To 256 Step 32 ' 青の割合を32づつ増やします。
列 = B / 32 + 1
If R = 256 Then R = 255
If g = 256 Then g = 255
If B = 256 Then B = 255
Cells(行, 列) = R & ", " & g & ", " & B
Cells(行, 列).Interior.Color = RGB(R, g, B)
If (R + g + B) / 32 < 7 Then Cells(行, 列).Font.ColorIndex = 15
Next
Next
Next
End Sub


Sub rgbirobango2()
Dim 行 As Integer, 列 As Integer, R As Integer, g As Integer, B As Integer
行 = 0
For R = 0 To 256 Step 16
For g = 0 To 256 Step 16
行 = 行 + 1
For B = 0 To 256 Step 16
列 = B / 16 + 1
If R = 256 Then R = 255
If g = 256 Then g = 255
If B = 256 Then B = 255
Cells(行, 列) = R & ", " & g & ", " & B
Cells(行, 列).Interior.Color = RGB(R, g, B)
If (R + g + B) / 16 < 10 Then Cells(行, 列).Font.ColorIndex = 15
Next
Next
Next
End Sub