ColorIndex一覧を作成

 Excel2016

Excel2010 マクロ講座 23回

ColorIndexに慣れるコード

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

ColorIndex一覧を作成してみる

作るのは、図のようなカラーインデックスの一覧表です。 ColorIndexは、56まであるので、インデックスのナンバーをカウンタ変数にして56まで繰り返し処理をします。
ColorIndex一覧を作成マクロ1
セルの指定方法には2通りあります。 Rangeプロパティを使用する方法とCellsプロパティを使用する方法です。Rangeプロパティを使用する方法では、日頃から馴染みのある"A1"とか"B2"というような指定の方法です。 一方、Cellsプロパティでは、Cells(行番号,列番号)で指定します。
ここでは、行番号を変数としてつかいたいので、Cellsプロパティを使います。
たとえば、A5セルの背景色を青にするコードは、次のようになります。
Sub セルの色()
  Cells(5, 1).Interior.ColorIndex = 5
End Sub
    
ColorIndex一覧を作成マクロ3
繰り返し処理をするのに、使うのはFor~Nextステートメントです。
ColorIndex一覧を作成マクロ2
For~Nextステートメントを使って、10回、20回のように、一定回数だけ繰り返し処理を設定します。
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)を設定する処理が、指定回数だけ繰り返します。縦長です。
ColorIndex一覧を作成マクロ4
これでは、見づらいので、コードを次のように変更しました。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列で表示されます。
ColorIndex一覧を作成マクロ4
文字に色を付けたい場合は、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一覧を作成マクロ4
このままでは、文字色が薄くて見ずらい場合あるので、好みの背景色(グレーなど)を付けて利用してください。下記に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