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

ExcelVBAヘッダー Excel VBA

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を駆使して、ルーティンワークの自動化、仕事効率化を目指してまいりましょう。

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

コメント

タイトルとURLをコピーしました