更新日:、 作成日:
VBA セルの色を取得する (Interior.Color, ColorIndex)
はじめに
Excel VBA マクロでセルの色を取得する方法を紹介します。
Range("B1").Font.Color または Cells(1, 2).Font.Color プロパティから、セル「B1」の文字色を取得できます。
Interior.Color プロパティから、セルの背景色を取得できます。
色を設定するには「セルに色を設定する」をご覧ください。
セルの色を取得する
セルの文字色と背景色を取得できます。
罫線の色を取得するには「セルの罫線の色を取得する」をご覧ください。
Range の引数にセル名を指定すると、そのセルの色を取得できます。
セル「A1」の色を取得するには Range("A1").Font.Color や Range("A1").Interior.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 や Cells(2, 1).Interior.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)
取得した色は「RGB 関数」と同じ形式の値です。
セルの範囲の色を取得する
セルの範囲の色を取得することはできません。
別シートのセルの色を取得する
シートを指定するには Worksheets の引数にシート名またはインデックスを指定します。
Sheet1 を指定するには Worksheets("Sheet1") または Worksheets(1) を入力します。
Dim l As Long
' Sheet1 のセル「A1」の文字色を取得
l = Worksheets("Sheet1").Range("A1").Font.Color
l = Worksheets(1).Range("A1").Font.Color
Debug.Print(l)
' Sheet2 のセル「A1」の背景色を取得
l = Worksheets("Sheet2").Range("A1").Interior.Color
l = Worksheets(2).Range("A1").Interior.Color
Debug.Print(l)
Sheet1 に Range や Cells を入力すると、自身のシートのセルになります。自身を表す Me. が省略されています。
' どちらも同じコード
Range("A1").Value = "Sheet1"
Me.Range("A1").Value = "Sheet1"
標準モジュールに Range や Cells を入力すると、開いているシートのセルになります。アクティブシートを表す ActiveSheet. が省略されています。
' どちらも同じコード
Range("A1").Value = "アクティブ"
ActiveSheet.Range("A1").Value = "アクティブ"
スポンサーリンク