サイトについて      連絡先   検索

VBA セルに色を設定する

はじめに

Excel VBA のセルに色を設定する方法を紹介します。

文字色は Range.Font.Color プロパティか Cells.Font.Color プロパティで設定できます。

背景色は Range.Interior.Color プロパティか Cells.Interior.Color プロパティで設定できます。

セルに色を設定する

設定する色は「Rgb 関数」で取得できる値を設定します。

RGB 関数で取得した色がそのまま適用されるのは Excel 2007 以降です。
Excel 2003 までは ColorIndex で使用できる色から、一番近い色が自動的に設定されます。

Range の引数にセル名を指定すると、そのセルに色を設定できます。

セル「A1」に色を設定するには Range("A1").Font.Color のように指定します。

Range("A1").Font.Color = RGB(255, 0, 0) ' 文字色
Range("A1").Interior.Color = RGB(200, 200, 200) ' 背景色
2

Cells の引数にセルの行と列の番号を指定すると、そのセルに色を設定できます。

行「2」、列「A」に色を設定するには Cells(2, 1).Font.Color のように指定します。

Cells(1, 1).Font.Color = RGB(255, 0, 0) ' A1
Cells(2, 1).Font.Color = RGB(255, 0, 0) ' A2
Cells(1, 2).Interior.Color = RGB(255, 0, 0) ' B1
Cells(2, 2).Interior.Color = RGB(255, 0, 0) ' B2

ColorIndex に決められた数値を指定すると、それに対応する色を設定します。

Range("A1").Font.ColorIndex = 3 ' 文字色
Range("A1").Interior.ColorIndex = 35 ' 背景色

数値と色の対応表はつぎのようになっています。

1

セルの範囲に色を設定する

セルの範囲「A1」~「B2」に同じ色を設定するには Range("A1:B2").Font.Color または Range("A1", "B2").Font.Color のように指定します。

Range("A1:B2").Font.Color = RGB(255, 0, 0) ' 文字色
Range("A1", "B2").Interior.Color = RGB(200, 200, 200) ' 背景色
3

指定したシートのセルに色を設定する

Range.Font.Color とコードに書くと、アクティブなシートのセルに色を設定します。これは ActiveSheet.Range.Font.Color の ActiveSheet が省略されています。

' どちらも同じコード
Range("A1").Font.Color = RGB(255, 0, 0)
ActiveSheet.Range("A1").Font.Color = RGB(255, 0, 0)

シートを指定するには Sheets の引数にシート名またはインデックスを指定します。

1

Sheet1 のシートを指定するには、Sheets("Sheet1") か Sheets(1) と書きます。

' Sheet1 のセル「A1」に文字色を設定
Sheets("Sheet1").Range("A1").Font.Color = RGB(255, 0, 0)
Sheets(1).Range("A1").Font.Color = RGB(255, 0, 0)

' Sheet2 のセル「A1」に背景色を設定
Sheets("Sheet2").Range("A1").Interior.Color = RGB(200, 200, 200)
Sheets(2).Range("A1").Interior.Color = RGB(200, 200, 200)

関連ページ