【VBA入門】ColorIndexの使い方と色見本一覧(色番号、RGB)

ExcelVBAでは、ColorIndexを使って色を指定することができます。

この記事では、ColorIndexを使って色を指定する方法について

  • ColorIndexプロパティとは
  • ColorIndexで色を設定する方法
  • ColorIndexで色を取得する方法


など基本的な内容から応用的な使い方についても解説していきます。

ColorIndexを使うことで、あらかじめ設定されている色を簡単に指定できます。また、指定する色を変更することもできます。

よく使う色を設定しておけば、簡単に指定できるようになるため重宝します。それでは、例を交えながら詳しく解説していきます。

なお、VBAを学びIT企業への転職や作業の効率化を実現したい人は「侍エンジニア」をお試しください。

侍エンジニアでは現役エンジニアと学習コーチの2名体制で学習をサポート。AIプログラミングやPython・VBAの習得を通じて、手間のかかる作業を効率化する方法を学べます。

受講料が最大80%OFFになる「給付金コース」も提供中。未経験から挫折なくAIスキルを習得したい人は、ぜひ一度お試しください。

\ オンラインで相談可能 /

目次

ColorIndexプロパティとは

ExcelVBAは、56色を扱うことのできるパレットを持っています。

パレットの色に対応するインデックス番号がColorIndexです。ColorIndexとデフォルトパレットの色の対応は、次の表の通りです。

ColorIndex10進数:RGB(赤, 緑, 青)16進数:H青緑赤
1RGB(0,0,0)&H000000
2RGB(255,255,255)&HFFFFFF
3RGB(255,0,0)&H0000FF
4RGB(0,255,0)&H00FF00
5RGB(0,0,255)&HFF0000
6RGB(255,255,0)&H00FFFF
7RGB(255,0,255)&HFF00FF
8RGB(0,255,255)&HFFFF00
9RGB(128,0,0)&H000080
10RGB(0,128,0)&H008000
11RGB(0,0,128)&H800000
12RGB(128,128,0)&H008080
13RGB(128,0,128)&H800080
14RGB(0,128,128)&H808000
15RGB(192,192,192)&HC0C0C0
16RGB(128,128,128)&H808080
17RGB(153,153,255)&HFF9999
18RGB(153,51,102)&H663399
19RGB(255,255,204)&HCCFFFF
20RGB(204,255,255)&HFFFFCC
21RGB(102,0,102)&H660066
22RGB(255,128,128)&H8080FF
23RGB(0,102,204)&HCC6600
24RGB(204,204,255)&HFFCCCC
25RGB(0,0,128)&H800000
26RGB(255,0,255)&HFF00FF
27RGB(255,255,0)&H00FFFF
28RGB(0,255,255)&HFFFF00
29RGB(128,0,128)&H800080
30RGB(128,0,0)&H000080
31RGB(0,128,128)&H808000
32RGB(0,0,255)&HFF0000
33RGB(0,204,255)&HFFCC00
34RGB(204,255,255)&HFFFFCC
35RGB(204,255,204)&HCCFFCC
36RGB(255,255,153)&H99FFFF
37RGB(153,204,255)&HFFCC99
38RGB(255,153,204)&HCC99FF
39RGB(204,153,255)&HFF99CC
40RGB(255,204,153)&H99CCFF
41RGB(51,102,255)&HFF6633
42RGB(51,204,204)&HCCCC33
43RGB(153,204,0)&H00CC99
44RGB(255,204,0)&H00CCFF
45RGB(255,153,0)&H0099FF
46RGB(255,102,0)&H0066FF
47RGB(102,102,153)&H996666
48RGB(150,150,150)&H969696
49RGB(0,51,102)&H663300
50RGB(51,153,102)&H669933
51RGB(0,51,0)&H003300
52RGB(51,51,0)&H003333
53RGB(153,51,0)&H003399
54RGB(153,51,102)&H663399
55RGB(51,51,153)&H993333
56RGB(51,51,51)&H333333

Excelのオプションから、パレットの確認と変更ができます。

次の3枚の画像のように[ファイル→オプション→保存→色]と選択します。
vba_color_index11 0

vba_color_index12 0
vba_color_index13 0

そうすることで、次のような色ウィンドウが開きます。
vba_color_index14 0

色ウィンドウに表示されるパレットとColorIndexの関係は、次の画像のようになっています。
vba_color_index15 0

パレットに追加した色は、ColorIndexを使用して簡単に指定できるようになります。

よく使う色をパレットに設定しておくと便利ですね。

ColorIndexで色を設定する方法

文字やセル、シート見出しについてはColorIndexで色を設定することができます。

Fontで文字色を設定する方法

Fontで文字色を設定するためには、次のように記述します。

Range("セル名").Font.ColorIndex = 色のインデックス番号

次のサンプルコードでは、セルB2の文字にパレットの3番目の色を設定するためにRange(“B2”).Font.ColorIndex = 3としています。

Sub Sample
    Range("B2").Font.ColorIndex = 3
End Sub

[実行前]
vba_color_index21 0

[実行後]
vba_color_index22 0

実行後の画像から、文字色がパレットの3番目の色である赤に変化したことを確認することができます。

Interiorでセルの背景色を設定する方法

Interiorでセルの背景色を設定するためには、次のように記述します。

Range("セル名").Interior.ColorIndex = 色のインデックス番号

次のサンプルコードでは、セルB2の背景にパレットの3番目の色を設定するためにRange(“B2”).Interior.ColorIndex = 3としています。

Sub Sample
    Range("B2").Interior.ColorIndex = 3
End Sub

[実行前]
vba_color_index21 0

[実行後]
vba_color_index32 0

実行後の画像から、セルの背景色がパレットの3番目の色である赤に変化したことを確認することができます。

Tabでシート見出しの色を設定する方法

Tabでシート見出しの色を設定するためには、次のように記述します。

Worksheets("シート名").Tab.ColorIndex = 色のインデックス番号

次のサンプルコードでは、Sheet1の見出しにパレットの3番目の色を設定するためにWorksheets(“Sheet1”).Tab.ColorIndex = 3としています。

Sub Sample()
    Worksheets("Sheet1").Tab.ColorIndex = 3
End Sub

[実行前]
vba_color_index41 0

[実行後]
vba_color_index42 0

実行後の画像から、シート見出しの色がパレットの3番目の色である赤に変化したことを確認することができます。

ColorIndexで色のインデックス番号を取得する

文字やセル、シート見出しについてはColorIndexで色を取得することができます。

Fontで文字色のインデックス番号を取得する

Fontで文字色を取得するためには、次のように記述します。

Dim idx As Integer
idx = Range("セル名").Font.ColorIndex

次のサンプルコードではセルB2の文字色を取得するためidx = Range(“B2”).Font.ColorIndexとしています。

Sub Sample()
    Dim idx As Integer
    idx = Range("B2").Font.ColorIndex
    Range("C3").Value = idx
    Range("C3").Interior.ColorIndex = idx
End Sub

[実行前]
vba_color_index51 0

[実行後]
vba_color_index52 0

この、サンプルコードでは、取得した色のインデックスを確認するために、Range(“C3”).Value = idxとしてセルC3の値に設定しています。

また、取得した色を確認するためにRange(“C3”).Interior.ColorIndex = idxとしてセルC3の背景色に設定しています。

実行後の画像からは取得した文字色のと、そのインデックス番号の3を確認することができます。

Interiorでセルの背景色のインデックス番号を取得する

Interiorでセルの背景色を取得するためには、次のように記述します。

Dim idx As Integer
idx = Range("セル名").Interior.ColorIndex

次のサンプルコードでは、セルB2の背景色を取得するためidx = Range(“B2”).Interior.ColorIndexとしています。

Sub Sample()
    Dim idx As Integer
    idx = Range("B2").Interior.ColorIndex
    Range("C3").Value = idx
    Range("C3").Interior.ColorIndex = idx
End Sub

[実行前]
vba_color_index61 0

[実行後]
vba_color_index62 0

この、サンプルコードでは、取得した色のインデックスを確認するために、Range(“C3”).Value = idxとしてセルC3の値に設定しています。

また、取得した色を確認するために、Range(“C3”).Interior.ColorIndex = idxとしてセルC3の背景色に設定しています。

実行後の画像からは取得した背景色である赤と、そのインデックス番号の3を確認することができます。

Tabでシート見出しの色のインデックス番号を取得する

Tabでシート見出しの色を取得するためには、次のように記述します。

Dim idx As Integer
idx = Worksheets("シート名").Tab.ColorIndex

次のサンプルコードでは、Sheet1の見出しの色を取得するためidx = Worksheets(“Sheet1”).Tab.ColorIndexとしています。

Sub Sample()
    Dim idx As Integer
    idx = Worksheets("Sheet1").Tab.ColorIndex
    Range("C3").Value = idx
    Range("C3").Interior.ColorIndex = idx
End Sub

[実行前]
vba_color_index71 0

[実行後]
vba_color_index72 0

この、サンプルコードでは、取得した色のインデックスを確認するために、Range(“C3”).Value = idxとしてセルC3の値に設定しています。

また、取得した色を確認するために、Range(“C3”).Interior.ColorIndex = idxとしてセルC3の背景色に設定しています。

実行後の画像からは取得したシート見出しの色である赤と、そのインデックス番号の3を確認することができます。

VBAの将来性

VBAのスキルを学んで業務を効率化したい

このように思っている人は多いでしょう。

VBAの用途はさまざまで、

  • VBAのスキルがあれば転職できるのでは?
  • 業務効率化のスキルは需要が高そうだから

などが上げられます。確かに、業務効率化はどこの企業も目指していて、需要が高いように見えます。ただ、VBAを扱えることが強みになるかといわれると、すこし疑問があります。

VBAは基本的にエクセル上でしか使用することができません。しかし、最近では社内書式をスプレッドシートで管理している企業も増えており、今後エクセル自体の需要が少なくなってしまう可能性も考えられます。

そうなってしまうと、VBAを習得しても活躍の場が限られてしまいますよね。そう考えると将来的にVBAの需要はあまり高くないといえます。

ではVBAを学んでいる人はどうすればいいのでしょう。VBAの将来性や今後の対策などをこちらの記事でまとめているのでぜひご確認ください。

VBAに将来性はある?4つの視点で最新の動向を解説
更新日:2025年4月17日

まとめ

いかがでしたか?

今回は、ColorIndexを使って色を指定する方法について解説しました。

あらかじめ、パレットを編集しておくことでよく使う色をColorIndexで簡単に指定できるようになります。さらに、ExcelVBAで色を一括で設定するようにしておけば、見た目を変更したい場合にパレットを編集するだけで済みます。

ColorIndexは扱える色数が56色と少なく感じるかもしれませんが、このように便利な側面もあります。

もし、ColorIndexを使って色を指定する機会があれば、この記事を思い出してみてください。

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次