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 |