RGB関数で色指定

RGB関数とは、指定したオブジェクトの色を取得・設定するときに利用する関数です。赤、緑、青の3つの要素で色を指定します。

Excel2010 マクロ講座 24回

表デザインRGB関数でシマシマに

Excel2003以前では、ワークシートで使える色が、色パレットにある56までの色でした。RGB関数でどんな色を指定しても色パレットにある一番近い色に置き換えられていました。
ところがExcel2007以降では、ワークシート上で表現できる色の数がなんと1600万色に増えたので、RGB関数で指定した色はほとんどが表現できるようになりました。
今回は、センスの良い1行おきの2色シマシマを作りたいので、マクロ講座22回のコードを変更します。
「If~Thenステートメント」を2回繰り返すか、「If~Then~Elseステートメント」を使うことで処理を2通りにします。

RGB関数で色指定マクロ2
(サンプルファイルは、こちらから 2010マクロ講座24回サンプルデータ

表の背景色1行おきに2色シマシマ

22回のコードは、
Sub セルの1行おきに色1()
  Dim 表 As Range
  For Each 表 In Selection
    If 表.Row Mod 2 = 0 Then
      表.Interior.ColorIndex = 34
    End If
  Next
End Sub
    
セルに対しての変更を選択範囲に繰り返すためにFor Each ~ Next ステートメントを使っています。これを、2色にするには、 「If~Thenステートメント」を2回繰り返せばできます。
Sub セルの1行おきに色3()
  Dim 表 As Range
  For Each c In Selection
    If 表.Row Mod 2 = 0 Then
      表.Interior.ColorIndex = 34
    End If
    If 表.Row Mod 2 = 1 Then
      表.Interior.ColorIndex = 15
    End If
  Next
End Sub
    
「If~Then~Elseステートメント」の構文は、次のようになります。こちらの方がスマート。
RGB関数で色指定マクロ1
結果は同じになります。
Sub セルの1行おきに色2()
  Dim 表 As Range
  For Each 表 In Selection
    If 表.Row Mod 2 = 0 Then
        表.Interior.ColorIndex = 34
    Else
        表.Interior.ColorIndex = 15
    End If
  Next
End Sub
    

ColorIndexにない色は、RGB関数で

使いたい色がColorIndexにない時は、RGB関数で指定することができます。
先のコードのグレーが強いので、RGB関数でもっと薄いグレーを指定します。 RGB関数で色指定マクロ4
Sub セルの1行おきに色4()
  Dim 表 As Range
  For Each 表 In Selection
    If 表.Row Mod 2 = 0 Then
        表.Interior.ColorIndex = 34
    Else
        表.Interior.Color = RGB(237, 237, 237)
    End If
  Next
End Sub
    
実行すると、2色使いでもスッキリした表デザインになりました。
RGB関数で色指定マクロ5