Color、ColorIndex、ThemeColorプロパティ

セルの背景色を設定するプロパティにはColor、ColorIndex、ThemeColorプロパティの3つがあります。

それぞれ利用の仕方が異なります。

マクロの記録機能を使って背景色の設定を行うとColorプロパティかThemeColorプロパティで記録されるのですが、ColorIndexプロパティもちゃんと使えます。

構文

Range セル範囲を示すRangeオブジェクトを指定します。
Interior セルの内部設定を行うプロパティです。セルの背景の設定では、色や濃淡や塗りつぶし効果(グラデーション)や網掛けを行う際に利用します。
Color Colorプロパティで取得する値はDouble型のRGB値になります。設定する場合も同様にRGB値を設定します。RGB値とはRGB関数で赤、緑、青の割合をそれぞれ0から255の範囲で設定した結果の値になります。RGB関数は「RGB(赤割合, 緑割合, 青割合)」で記述します。
ColorIndex XlColorIndex列挙型、または、1から56を設定します。ColorIndexプロパティはカラーパレットのインデックス番号に対応しています。カラーパレットの56色の配色はExcelのオプション→保存→色ボタンで表示される「色」ダイアログで変更できます。そのため、標準では黒は1番ですが、常に黒ではありません。これが常に色がRGB値であるColorプロパティとの違いです。

XlColorIndex列挙型

定数 内容
xlColorIndexAutomatic -4105 自動的に色を設定する
xlColorIndexNone -4142 背景色を未設定にする
ThemeColor テーマカラーをMsoThemeColorSchemeIndex列挙型で取得および設定します。

 

内容列に書いている色はExcel2016の標準の状態での色です。テーマが変わったりExcelのバージョンにより色は変わります。

MsoThemeColorSchemeIndex列挙型

定数 内容(標準時の色)
msoThemeDark1 1 背景1(白)
msoThemeLight1 2 テキスト1(黒)
msoThemeDark2 3 背景2(灰色)
msoThemeLight2 4 テキスト2(青灰色)
msoThemeAccent1 5 アクセント1(青)
msoThemeAccent2 6 アクセント2(オレンジ)
msoThemeAccent3 7 アクセント3(灰色)
msoThemeAccent4 8 アクセント4(金色)
msoThemeAccent5 9 アクセント5(青)
msoThemeAccent6 10 アクセント6(緑)
msoThemeHyperlink 11 ハイパーリンク
msoThemeFollowedHyperlink 12 表示済みのハイパーリンク

 

サンプルコード

以下はColor、ColorIndex、ThemeColorプロパティのそれぞれで背景色の取得と設定を行うサンプルです。

実行結果