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

VBA セルの色を取得する

はじめに

Excel VBA のセルの色を取得する方法を紹介します。

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

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

セルの色を取得する

色は「Rgb 関数」で取得できる数値が取得されます。

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

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

Dim l As Long
l = Range("A1").Font.Color ' 文字色
l = Range("A1").Interior.Color ' 背景色
Debug.Print(l)

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

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

Dim l As Long
l = Cells(1, 1).Font.Color ' A1
l = Cells(2, 1).Font.Color ' A2
l = Cells(1, 2).Interior.Color ' B1
l = Cells(2, 2).Interior.Color ' B2
Debug.Print(l)

セルの範囲の色を取得する

セルの範囲の色を取得することはできません。

指定したシートのセルの色を取得する

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

' どちらも同じコード
Dim l As Long
l = Range("A1").Font.Color
l = ActiveSheet.Range("A1").Font.Color

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

1

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

Dim l As Long
' Sheet1 のセル「A1」の文字色を取得
l = Sheets("Sheet1").Range("A1").Font.Color
l = Sheets(1).Range("A1").Font.Color
Debug.Print(l)

' Sheet2 のセル「A1」の背景色を取得
l = Sheets("Sheet2").Range("A1").Interior.Color
l = Sheets(2).Range("A1").Interior.Color
Debug.Print(l)

関連ページ