ColorIndex一覧を作成
Excel2010 マクロ講座 23回
ColorIndexに慣れるコード
今回は、Excelのカラーインデックス一覧を作成するコードを紹介します。
セルの背景やフォントの色を指定するときなどに、カラーインデックスの一覧表を作成しておくとちょっとだけ便利です。
また これは、プログラムを作成する際の、「連続した処理」、「判断」、「繰り返し」という3つのパターンの「繰り返し」という処理です。
(サンプルファイルは、こちらから 2010マクロ講座23回サンプルデータ)
ColorIndex一覧を作成してみる
作るのは、図のようなカラーインデックスの一覧表です。
ColorIndexは、56まであるので、インデックスのナンバーをカウンタ変数にして56まで繰り返し処理をします。


セルの指定方法には2通りあります。
Rangeプロパティを使用する方法とCellsプロパティを使用する方法です。Rangeプロパティを使用する方法では、日頃から馴染みのある"A1"とか"B2"というような指定の方法です。
一方、Cellsプロパティでは、Cells(行番号,列番号)で指定します。
ここでは、行番号を変数としてつかいたいので、Cellsプロパティを使います。
たとえば、A5セルの背景色を青にするコードは、次のようになります。
ここでは、行番号を変数としてつかいたいので、Cellsプロパティを使います。
たとえば、A5セルの背景色を青にするコードは、次のようになります。
Sub セルの色()
Cells(5, 1).Interior.ColorIndex = 5
End Sub

繰り返し処理をするのに、使うのはFor~Nextステートメントです。


For~Nextステートメントを使って、10回、20回のように、一定回数だけ繰り返し処理を設定します。
ColorIndexは、56まであるので、カウンタ変数の開始値は、1にします。終了値は56です。
1~56までの繰り返しの処理は、次のコードになります。実行すると最初のColorIndex一覧のサンプル画像になります。
ColorIndexは、56まであるので、カウンタ変数の開始値は、1にします。終了値は56です。
1~56までの繰り返しの処理は、次のコードになります。実行すると最初のColorIndex一覧のサンプル画像になります。
Sub セルにカラーインデックス()
Dim i As Integer
For i = 1 To 56
Cells(i, 1).Interior.ColorIndex = i
Next i
End Sub
実行すると、行番号(i+1)にカラーインデックス番号(i)を設定する処理が、指定回数だけ繰り返します。縦長です。
これでは、見づらいので、コードを次のように変更しました。For~Nextステートメントを3回使っています。
Sub カラーインデックス3列()
Dim i As Integer
For i = 1 To 19
Cells(i, 1).Interior.ColorIndex = i
Cells(i, 2).Value = "[ColorIndex " & Cells(i, 1).Interior.ColorIndex & "]"
Next
For i = 20 To 38
Cells(i - 19, 3).Interior.ColorIndex = i
Cells(i - 19, 4).Value = "[ColorIndex " & Cells(i - 19, 3).Interior.ColorIndex & "]"
Next
For i = 39 To 56
Cells(i - 38, 5).Interior.ColorIndex = i
Cells(i - 38, 6).Value = "[ColorIndex " & Cells(i - 38, 5).Interior.ColorIndex & "]"
Next
End Sub 実行するとこのように3列で表示されます。


文字に色を付けたい場合は、Font.Colorで指定します。
Sub カラーインデックス3列でフォント色()
Dim i As Integer
For i = 1 To 19
Cells(i, 1).Interior.ColorIndex = i
Cells(i, 2).Value = "[ColorIndex " & Cells(i, 1).Interior.ColorIndex & "]"
Cells(i, 2).Font.ColorIndex = i
Next
For i = 20 To 38
Cells(i - 19, 3).Interior.ColorIndex = i
Cells(i - 19, 4).Value = "[ColorIndex " & Cells(i - 19, 3).Interior.ColorIndex & "]"
Cells(i - 19, 4).Font.ColorIndex = i
Next
For i = 39 To 56
Cells(i - 38, 5).Interior.ColorIndex = i
Cells(i - 38, 6).Value = "[ColorIndex " & Cells(i - 38, 5).Interior.ColorIndex & "]"
Cells(i - 38, 6).Font.ColorIndex = i
Next
End Sub
実行するとこのように3列で表示され、さらに文字の色がカラーインデックスの色になります。


このままでは、文字色が薄くて見ずらい場合あるので、好みの背景色(グレーなど)を付けて利用してください。下記にColorIndexの一覧表を表示しました。Index番号を知りたい時にご利用ください。
ColorIndex一覧
| 色 | 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 |
