Excel VBA セルの文字色、背景色を取得する

セルの操作

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
タイトルとURLをコピーしました