【Excel VBA】ColorIndexプロパティ値で簡単色指定

ノートパソコンでプログラミング

こんにちは、タクローです。

Excel VBAを使っていれば、セルの背景色文字色を変更したりする処理をコーディングすることは頻繁にあるでしょう。

今回はセルの「背景色」と「文字色」に焦点を当ててみたいと思います。

セルの背景色を指定する場合はInteriorオブジェクト、またセルの文字色を指定する場合はFontオブジェクトを使います。

  • セルの背景色を指定する場合は、Interior
  • セルの文字色を指定する場合は、Font

これらオブジェクトに続けて、ColorIndexプロパティColorプロパティを指定することで、実際に利用する「色」を指定します。

例を挙げるとすると、下のような感じになります。

  • Range(“A1”).Interior.ColorIndex = (指定する背景色)
  • Range(“A1”).Interior.Color = (指定する背景色)
  • Range(“A1”).Font.ColorIndex = (指定する文字色)
  • Range(“A1”).Font.Color = (指定する文字色)

色を指定する方法は、ColorIndexプロパティとColorプロパティ、2種類ありますが、ColorIndexプロパティを使った方が、色の指定が簡単です。

Excelには56色に対応した「インデックス番号」というのがあります。
ColorIndexプロパティでは、その「インデックス番号」を使って色を指定します。

一方、Colorプロパティは56色に対応した「RGB表記」、あるいは「16進数表記」を使って色を指定します。
「RGB表記」と「16進数表記」は、56色に限らず、さまざまな色の変化を細かく指定できます。

ただ、Excel VBAでコーディングしていると、微妙な色の変化を表現して多くの色を使用する機会はあまりないのではないでしょうか。

ColorIndexプロパティは「1」から「56」までの整数を使って、簡単に色を指定できるため、ほとんどの場合、私はColorIndexプロパティを使います。

非常に簡単で、扱いやすく、また56色もあれば十分だからです。

Excel 56色一覧表

たくさんのカラー鉛筆

以下、56色に対応したインデックス番号、RGB表記、16進数表記の一覧です。

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

Excel VBAでプログラミングをしていると、その人の好みなのか、使う色って結構決まってくるものです。

このネタをブログ記事にする前、私は色を指定する度にググってインデックス番号を調べていました。
みなさんも色を調べるときに、この記事を参考にしていただければ幸いです。

背景色の指定方法

セル「A1」の背景色に「青」を指定してみましょう。
3つのパターンで書くことができます。

Range("A1").Interior.ColorIndex = 5
Range("A1").Interior.Color = RGB(0,0,255)
Range("A1").Interior.Color = "HFF0000"

文字色の指定方法

次にセル「A1」の文字の色に「赤」を指定してみましょう。
3つのパターンで書くことができます。

Range("A1").Font.ColorIndex = 3
Range("A1").Font.Color = RGB(255,0,0)
Range("A1").Font.Color = "H0000FF"

背景、文字以外の色指定方法

同じ要領でシートの見出しの色に「赤」を指定してみましょう。
Tabオブジェクトを使用します。

ActiveSheet.Tab.ColorIndex = 3
ActiveSheet.Tab.Color = RGB(255,0,0)
ActiveSheet.Tab.Color = "H0000FF"

さらに、セル「A1」の罫線の色に「青」を指定してみましょう。
Bordersオブジェクトを使用します。

Range("A1").Borders.ColorIndex = 5
Range("A1").Borders.Color = RGB(0,0,255)
Range("A1").Borders.Color = "HFF0000"

実際の処理結果サンプル

以下のようにコーディングするとどのような結果が得られるか見ていきましょう。

'セルB2を処理します(インデックス番号)

With Range("B2")
        .Interior.ColorIndex = 6    '背景を黄色に
        .Font.ColorIndex = 3        '文字色を赤色に
        .Borders.ColorIndex = 5     '罫線を青色に
End With


'セルD2を処理します(RGB表記)

With Range("D2")
        .Interior.Color = RGB(255, 255, 0)  '背景を黄色に
        .Font.Color = RGB(255, 0, 0)        '文字色を赤色に
        .Borders.Color = RGB(0, 0, 255)     '罫線を青色に
End With


'セルF2を処理します(16進数表記)

With Range("F2")
        .Interior.Color = "&H00FFFF"    '背景を黄色に
        .Font.Color = "&H0000FF"        '文字色を赤色に
        .Borders.Color = "&HFF0000"     '罫線を青色に
End With


'シート見出しの色をインデックス番号を使って赤色にします

ActiveSheet.Tab.ColorIndex = 3

下の画像がコーディング結果です。
見ておわかりのとおり、セル「B2」、「D2」、「F2」ともに背景が黄色、文字色が赤色、罫線が青色に設定されています。

ExcelVBAColorIndexサンプル

また、シート見出しの色も赤色になっていることがわかります。

ExcelVBATabColorIndexサンプル

まとめ

Excelマクロを作成していると、色を付ける場面に遭遇するでしょう。

セルの背景色は「Interior」、セルの文字色は「Font」を使用します。
便利で簡単な「ColorIndex」ならインデックス番号を指定するだけです。

  • (セルの背景色)Interior.ColorIndex = (インデックス番号)
  • (セルの文字色)Font.ColorIndex = (インデックス番号)

効率の良いコーディング、またメンテナンスしやすいコーディングの参考になれば幸いです。

Excel VBAを駆使して、ルーティンワークの自動化、仕事効率化を目指してまいりましょう。

最後まで読んでいただき、ありがとうございました。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする