VBAでセルの文字色、背景色を取得する方法についてご説明します。
セルの文字色や背景色で分岐するなどの、条件分岐を行う際に便利です。
文字色、背景色それぞれの取得方法を順にご説明します。
また、取得した色で分岐する方法も併せてサンプルコードを紹介したいと思います。
その他のセルの操作については下記記事をご覧ください。
1.文字色の取得方法
セルに設定されている文字色を取得するには「Font.Color 」プロパティを使用します。
RangeとCellsどちらでも取得可能で、次のように記述します。
Range.Font.Color
'もしくは
Cells.Font.Color
文字列の色を取得するサンプルコード
次のようなB2~B5に入力されているデータに「赤、緑、青、黒」の文字色を指定しています。
このデータを取得したいと思います。
Sub Sample1()
Debug.Print Range("B2").Font.Color
Debug.Print Range("B3").Font.Color
Debug.Print Range("B4").Font.Color
Debug.Print Range("B5").Font.Color
'もしくは
Debug.Print Cells(2, 2).Font.Color
Debug.Print Cells(3, 2).Font.Color
Debug.Print Cells(4, 2).Font.Color
Debug.Print Cells(5, 2).Font.Color
End Sub
どちらも同じ結果になりますが、「赤:255」「緑:5287936」「青:12611584」「黒:0」と取得出来ました。
2.背景色の取得方法
次はセルの背景色を取得する方法です。
背景色は「Interior.Color」プロパティを使用します。
次のように記述します。
Range.Interior.Color
'もしくは
Cells.Interior.Color
背景色を取得するサンプルコード
次のようなD2~D5に入力されているデータに「赤、緑、青、黒」の背景色を指定しています。
このデータを取得したいと思います。
Sub Sample2()
Debug.Print Range("D2").Interior.Color
Debug.Print Range("D3").Interior.Color
Debug.Print Range("D4").Interior.Color
Debug.Print Range("D5").Interior.Color
'もしくは
Debug.Print Cells(2, 4).Interior.Color
Debug.Print Cells(3, 4).Interior.Color
Debug.Print Cells(4, 4).Interior.Color
Debug.Print Cells(5, 4).Interior.Color
End Sub
どちらも同じ結果になりますが、先ほどと同様に「赤:255」「緑:5287936」「青:12611584」「黒:0」と取得出来ました。
3.取得した色で分岐する方法
文字色、背景色で分岐する場合、「Font.Color」と「Interior.Color」を変えるだけです。
先ほどの文字色を使って「青: 12611584 」の時に入力されているデータを取得するコードです。
Sub Sample3()
Dim i As Long
For i = 2 To 5
If Cells(i, 2).Font.Color = 12611584 Then
MsgBox Cells(i, 2).Value
End If
Next i
End Sub