今回は、セルの背景色を設定する方法を解説します。
色の設定方法について、複数パターン(RGB・インデックス番号・定数など)での指定方法を掲載。
色をクリアする方法も併せて解説します。
- セルの背景色を設定する方法が分かります。
- 基本的な色から、マイナーな色まで対応しています。
- 色をクリアする方法も解説します。
- コピペで使える実践的なコードを掲載しています。
前提
関連プロパティ
セル背景色を設定するには、以下2パターン存在します。
色を指定する際、「RGB形式・定数」で指定するか、「インデックス番号」で指定するかにより使い分けましょう。
また、背景色をクリア(色なし)にするには、ColorIndexプロパティを使用してください。
詳しい使い方は後述します。
| # | プロパティ | 説明 |
|---|---|---|
| 1 | Color | RGB形式・定数にてセルの背景色を設定。 RGB形式・定数にてセルの背景色を取得。 |
| 2 | ColorIndex | 色のインデックス番号を指定し、セルの背景色を設定。 セルの背景色のインデックス番号を取得。 色なしの設定も可能。 |
RGBやインデックス番号に対応した色について
代表的な色のRGBと、インデックス番号を掲載します。
ここでは、注目してほしい点を目立たせる「赤と黄色」、無効や削除の意味を持つ「グレー」をご紹介します。
| # | 色 | RGB | ColorIndex |
|---|---|---|---|
| 1 | RGB(255, 0, 0) | 3 | |
| 2 | RGB(255, 255, 0) | 6 | |
| 3 | RGB(128, 128, 128) | 16 |
上記以外の色のRGBやインデックス番号を詳しく知りたい方は以下の記事にて解説しています。

基本情報
Colorプロパティ
RGB形式でセルの背景色を設定したい場合、Range.InteriorオブジェクトのColorプロパティを使用します。
また、ColorプロパティはRBG形式だけでなく定数での指定も可能です。
構文
RangeObject.InteriorObject.Color = 設定値
設定値
RGB値 及び 「XlRgbColor」定数を指定します。
「XlRgbColor」定数については後述します。
定数
Colorプロパティでは、「XlRgbColor」定数も指定可能です。
※定数の数が多いため、確認したい方は以下を展開したうえご確認ください。
XlRgbColor定数
| # | 定数 | 色 |
|---|---|---|
| 1 | rgbBlack | |
| 2 | rgbGrey | |
| 3 | rgbSilver | |
| 4 | rgbWhite | |
| 5 | rgbRed | |
| 6 | rgbBlue | |
| 7 | rgbAqua | |
| 8 | rgbTeal | |
| 9 | rgbGreen | |
| 10 | rgbLime | |
| 11 | rgbOrange | |
| 12 | rgbGold | |
| 13 | rgbYellow | |
| 14 | rgbPurple | |
| 15 | rgbPink | |
| 16 | rgbBrown | |
| 17 | rgbDarkRed | |
| 18 | rgbOrangeRed | |
| 19 | rgbDarkOrange | |
| 20 | rgbTomato | |
| 21 | rgbSalmon | |
| 22 | rgbDarkGreen | |
| 23 | rgbForestGreen |
ColorIndexプロパティ
インデックス番号でセルの背景色を設定したい場合や、セル背景色をクリアする場合は、Range.InteriorオブジェクトのColorIndexプロパティを使用します。
構文
RangeObject.InteriorObject.ColorIndex = 設定値
設定値
インデックス番号 及び「XlColorIndex」定数を指定します。
「XlColorIndex」定数については後述します。
定数
ColorIndexプロパティでは、「XlColorIndex」定数も指定可能です。
| # | 定数 | 説明 |
|---|---|---|
| 1 | xlColorIndexAutomatic | 色を自動的に設定 |
| 2 | xlColorIndexNone | 色なし |
サンプルコード
セルの背景色を設定する
Public Sub setCellColor()
' A1セルの背景色を 黄色 にする
Range("A1").Interior.Color = RGB(255, 255, 0)
' A2セルの背景色を 灰色 にする
Range("A2").Interior.Color = rgbGrey
' A3セルの背景色を 赤色 にする
Range("A3").Interior.ColorIndex = 3
End Subセルの背景色を取得する
Public Sub getCellColor()
Dim colorVal As Long ' Colorプロパティ返却用
Dim colorIndexVal As Long ' ColorIndexプロパティ返却用
' A1セルの背景色を取得
colorVal = Range("A1").Interior.Color
' 取得した背景色を B1セルに反映
Range("B1").Interior.Color = colorVal
' A2セルの背景色を取得
colorIndexVal = Range("A2").Interior.ColorIndex
' 取得した背景色を B2セルに反映
Range("B2").Interior.ColorIndex = colorIndexVal
End SubColorIndexプロパティで背景色を取得する場合、セルの背景色がColorIndexのインデックス番号に対応しているかを確認ください。
意図しないインデックス番号が取得されます。
セルの背景色をクリアする
Public Sub clearCellColor()
' A1セルの背景色を取得
Range("A1").Interior.ColorIndex = xlColorIndexNone
End Subシートの背景色をクリアする
Public Sub clearAllCellColor()
' 1番目のシートのセル背景色を全てクリアする
Worksheets(1).Cells.Interior.ColorIndex = xlColorIndexNone
End Sub最後に
今回は、セルの背景色を設定する方法について解説しました。
2つのパターンを解説しましたが、個人的にはColorプロパティが好きです。
理由は、「定数で色を指定すると誰が読んでも何色に変更しているかが分かりやすいため」です。
使用用途に応じ、使い分けをしてみてください!


コメント