マクロ講座 色番号ColorIndex

Excel 色番号一覧マクロ For~Nextを入れ子

色番号一覧表をつくるマクロ
色番号とは、Office製品のカラーパレットにある56色を識別する番号のことです。ColorIndexプロパティを使います。
Excelでは、光の三原色であるRGBを0~255の256段階で表し、約1670万色の色を使うことができます。RGBで色を指定する時は、Colorプロパティを使います。こちらは、次の回で紹介しましょう。
マクロでセルの背景色を設定する時に、色を調べるのがめんどうだと感じることはありませんか?
今回は、ColorIndexプロパティで色番号一覧表を作るマクロを紹介します。(サンプルファイルは、こちらから 2013マクロ講座37回サンプルデータ

色番号一覧表をつくるマクロ

単純にカラーパレットにある56色を表示するマクロです。A列にColorIndexにあたる数値が入力されていて、B列のセル色として表示するというものです。
色番号一覧表
コードは、行番号をカラーインデックスに使っています。
Sub 色番号縦()
  Dim 行 As Integer
  For 行 = 0 To 56
      Cells(行 + 1, 1).Value = 行
      Cells(行 + 1, 2).Interior.ColorIndex = 行
  Next 行
End Sub

色番号の一覧を格子状に作るマクロです。

こちらは、もう少し高度で、格子状に作るために工夫しています。
変数を3つ使い、For~Nextステートメントを使っています。
色番号一覧表2

For~Nextステートメントの使い方

For~Nextステートメントの使い方
最初に、Forで繰り返し回数を宣言します。
繰り返し回数は、カウンタの変化範囲(開始値と終了値)で指定します。
たとえば、「開始値が1,終了値が7」なら繰り返しは、7回。
繰り返しの終了位置はNextで指定します。
For~Next が実行されると、カウンタの値が開始値から1ずつカウントアップされ、終了値に達すると繰り返しが終了します。
コードは、For~Nextを入れ子にしています。
Sub 色番号()
    Dim 行 As Integer, 列 As Integer, 色番号 As Integer
    For 行 = 1 To 7
        For 列 = 1 To 8
            色番号 = 列 + (行 - 1) * 8
            Cells(行, 列) = 色番号
            Cells(行, 列).Interior.ColorIndex = 色番号
        Next 列
    Next 行
End Sub
For~Nextを入れ子というと、コード上ではちょっとわけがわからなくなりがちですね。
色番号一覧表2
最初の行=1の時は、1行目に対して、列の繰り返しを1~8まで行って、 1行目が終了すると行=2になり、2行目に対して、列の繰り返しを1~8まで行うという作業をします。
これをFor 行 = 1 To 7で7行目までやってくれます。
今日の講義は以上です。お疲れ様でした。
スポンサーリンク
スポンサーリンク