RGB関数で色指定
RGB関数とは、指定したオブジェクトの色を取得・設定するときに利用する関数です。赤、緑、青の3つの要素で色を指定します。
Excel2010 マクロ講座 24回
表デザインRGB関数でシマシマに
Excel2003以前では、ワークシートで使える色が、色パレットにある56までの色でした。RGB関数でどんな色を指定しても色パレットにある一番近い色に置き換えられていました。
ところがExcel2007以降では、ワークシート上で表現できる色の数がなんと1600万色に増えたので、RGB関数で指定した色はほとんどが表現できるようになりました。
今回は、センスの良い1行おきの2色シマシマを作りたいので、マクロ講座22回のコードを変更します。
「If~Thenステートメント」を2回繰り返すか、「If~Then~Elseステートメント」を使うことで処理を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ステートメント」の構文は、次のようになります。こちらの方がスマート。


結果は同じになります。
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関数でもっと薄いグレーを指定します。

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色使いでもスッキリした表デザインになりました。
