ここでは、VBA からセルの背景色を設定するサンプルスクリプトを掲載しています。セルの背景色を指定するには 1から 56までのカラーパレットのインデックス番号か、XlColorIndex 列挙を Interior オブジェクトの ColorIndex プロパティに設定します。Interior オブジェクトは、インテリアという名前の通りセルの背景色など装飾情報を管理しています。
スポンサーリンク
XlColorIndex 列挙
この列挙体の一覧を下表に示します。また、この列挙対は Excel 2007 以降でのみ使用することができます。それ以前のバージョンのエクセルの場合には、値を直接設定することで設定できるかもしれません。(未検証です)
| 名前 | 値 | 説明 |
|---|---|---|
| xlColorIndexAutomatic | -4105 | 自動設定 |
| xlColorIndexNone | -4142 | 色なし |
セルの背景色を設定するサンプルコード
セルの背景色を設定するサンプルです。詳細はサンプル内のコメントおよび実行結果を参照ください。
Dim i As Integer, j As Integer
For i = 1 To 8
For j = 1 To 7
' カラーパレットのインデックス番号
ActiveSheet.Cells(i, j).Value = (i - 1) * 7 + j
' セルの背景色を設定
ActiveSheet.Cells(i, j).Interior.ColorIndex = (i - 1) * 7 + j
Next j
Next i
' 自動設定
ActiveSheet.Cells(10, 1).Value = XlColorIndex.xlColorIndexAutomatic
ActiveSheet.Cells(10, 1).Interior.ColorIndex = XlColorIndex.xlColorIndexAutomatic
' 背景色なし
ActiveSheet.Cells(12, 1).Value = XlColorIndex.xlColorIndexNone
ActiveSheet.Cells(12, 1).Interior.ColorIndex = XlColorIndex.xlColorIndexNone
実行結果

セルの背景色設定サンプルの実行結果
セルの背景色を RGB 値で設定する
次に、セルの背景色を RGB 値で設定してみます。セルの背景色を RGB 値で指定するには Interior オブジェクトの Color プロパティに値を設定します。
' セルに表示するテキストを設定
ActiveSheet.Cells(1, 1).Value = "RGB(0, 0, 0)"
' セル内のテキストの色(白)を設定
ActiveSheet.Cells(1, 1).Font.Color = RGB(255, 255, 255)
' セル内の背景色(黒)を設定
ActiveSheet.Cells(1, 1).Interior.Color = RGB(0, 0, 0)
実行結果

セルの背景色をRGB値で設定