Excelでは文字の色、セルの背景色、シートのタブなどの色を変更することができますが、VBAのコードからもこれらの色を設定することが出来ます。これらを設定する方法は、対象のオブジェクトは異なりますが、プロパティや設定する値は共通です。
目次
RGB値で色を設定する ― Colorプロパティ
| Rangeオブジェクト.Interior.Color = RGB値 | |||
RGB値は色を表すLong型の整数値です。XlRgbColor列挙型の定数を使うこともできますし、RGB関数を使って生成することも出来ます。
RGB関数の構文は次の通りで、引数のred、green、blueには、それぞれの色の成分を0~255の範囲の整数値で指定します。
RGB(red, green, blue)
次の表は標準色とそれぞれの色の数値を示しています。
| 色 | redの値 | greenの値 | blueの値 |
|---|---|---|---|
| 黒 | 0 | 0 | 0 |
| 青 | 0 | 0 | 255 |
| 緑 | 0 | 255 | 0 |
| シアン | 0 | 255 | 255 |
| 赤 | 255 | 0 | 0 |
| マゼンタ | 255 | 0 | 255 |
| 黄色 | 255 | 255 | 0 |
| 白 | 255 | 255 | 255 |
次のコードは最初にRGB関数で生成されるLong値を確認し、その値をセル範囲の背景色として設定します。最後に設定された値を再び表示します。
Sub colorSample()
Dim curCell As Range
Dim col As Long
Dim i As Long
col = 1
For i = 1 To 56
' インデクスが1, 11,…ならヘッダを印字する
If i Mod 10 = 1 Then
Set curCell = Cells(1, col)
curCell.Value = "index"
curCell.Offset(0, 1).Value = "color"
Set curCell = curCell.Offset(1)
col = col + 2
End If
curCell.Value = i
curCell.Offset(0, 1).Interior.ColorIndex = i
Set curCell = curCell.Offset(1)
Next i
End Sub