セルの色を変更する方法について解説します。シートを見栄え良くするために便利なセルの色指定ですが、VBAではどのように行われているのでしょうか。

ColorIndexによる設定

Excelのカラーパレットに登録されている番号を指定する方法です。
まずは指定したい色で任意のセルを塗りつぶし、何番に登録されているのか確認してみましょう。
<コード>

MsgBox "セルA2の色は" & Range("A2").Interior.ColorIndex & "です。" & _
vbCrLf & "セルA3の色は" & Range("A3").Interior.ColorIndex & "です。"

<実行例>
【VBA入門】セルの色を変更する方法
対象のセルをCellsまたはRangeで指定し、Font.ColorIndexで文字色をInterior.ColorIndexで背景色を設定します。
<コード>

Range("C2").Font.ColorIndex = 47
Cells(3, 3).Font.ColorIndex = 47
Range("D4").Interior.ColorIndex = 6
Cells(5, 4).Interior.ColorIndex = 6

<実行例>
【VBA入門】セルの色を変更する方法

Colorによる設定

ところで、ColorIndexではカラーパレットに登録される56色しか指定できません。もっと細かい色合いを指定したい場合は前述のコードのColorIndexの部分をColorに変更してみましょう。この場合はRGB関数を使って色を指定します。
・RGB関数とは?
パソコン上ではR(Red:赤)・G(Green:緑)・B(Blue:青)の3色についてそれぞれ0~255までの割合を指定する事により色を表現しています。つまり、RGB関数に3つの色の値を渡すことにより色を指定することができるのです。
RGB関数に渡す数値はカラーパレットの【その他の色→ユーザー設定】から確認することができます。
<コード>

Range("C2").Font.Color = RGB(52, 162, 104)
Cells(3, 3).Font.Color = RGB(52, 162, 104)
Range("D4").Interior.Color = RGB(52, 162, 104)
Cells(5, 4).Interior.Color = RGB(52, 162, 104)

<実行例>
【VBA入門】セルの色を変更する方法
<Excelのバージョンの違いについて>
Excel2007以降では1600万色もの色を表現することができますが、Excel2003以前ではカラーパレットに登録できる56色までしか扱うことはできません。その場合、RGB関数を使って細かく色を設定したとしてもカラーパレット上の近似値が採用されるのでイメージと異なる色が表示される場合があります。

まとめ

VBAではカラーパレット上の色の指定もできますが、RGB関数と組み合わせることによりさらに細かい表現が可能になります。セルの色を調整してより見やすく美しいレイアウトを仕上げていきましょう。