ColorIndex一覧を作成

 Excel2016

リンクユニット


Excel2010 マクロ講座 23回

ColorIndexに慣れるコード

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

ColorIndex一覧を作成してみる

作るのは、図のようなカラーインデックスの一覧表です。 ColorIndexは、0から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
このままでは、文字色が薄くて見ずらい場合あるので、好みの背景色(グレーなど)を付けて利用してください。