Categories: VBA基礎

EXCEL VBA セルの背景色 Interior ThemeColor ColorIndexの使い方

EXCEL VBA セルの背景色 Interior ThemeColor ColorIndexの使い方

 

●はじめに
ここでは、セルの背景色の設定方法を説明いたします。背景色(塗りつぶし)は、セルの見た目を表現する時に効果が発揮できます。背景色は、表の見出しやタイトルなどで利用しますが、VBAプログラムと組み合わせる事により、ある条件に該当するセルに対して背景色を付ける事もできます。

 

●書式の説明
Rangeオブジェクト.Interiorオブジェクト.プロパティ名

 

プロパティ色の数設定方法
ThemeColor 12色Range("A1").Interior.ThemeColor = 1~12
ColorIndex56色Range("A1").Interior.ColorIndex = 1~56
Color167772161色Range("A1").Interior.Color = RGB(0~255,0~255 , 0~255)

 

Interior .ThemeColor での背景色

 

●プログラム説明
下記のプログラムは、Interior .ThemeColor での背景色の表示方法です。セルのA1~A12までにInterior .ThemeColor で表現できる12色を表示させます。

 

Sub CellsColor()

    Dim CC As Integer
    Dim ADD As Range
    
    CC = 1
    
    For Each ADD In Range("A1:A12")  'ループ処理させる範囲を指定します。A1~A12まで
          
        ADD.Interior.ThemeColor = CC '
        Cells(ADD.Row, "B") = CC
        
        CC = CC + 1
                    
    Next ADD

End Sub

 

●実行結果
実行後、Interior .ThemeColor で表現できる12色を表示A1~A12させます

 

●実行前 ※実行前は、空白セルが表示されています。(クリックして拡大)

 

●実行後 ※A1~A12まで順番に、背景色が表示されました。(実行後のB列の番号は色番号です)(クリックして拡大)

 

 

Interior .ColorIndexでの背景色

 

●プログラム説明
下記のプログラムは、Interior .ColorIndex での背景色の表示方法です。セルのA1~E12までにInterior .ColorUndex で表現できる56色を表示させます。

 

Sub CellsColor2()

    Dim CC As Integer
    Dim ADD As Range
    
    CC = 1
    
    For Each ADD In Range("A1:E12")  'ループ処理させる範囲を指定します。A1~D10まで
          
        ADD.Interior.ColorIndex = CC  '背景色を指定します。
        ADD.Value = CC                '背景色の番号を同じセルに表示させます。
        
        CC = CC + 1  '背景色を+1にして色を変える。
        
        If CC = 57 Then
            Exit For    '背景色が56までなので、57に成ったらループから抜ける。
        End If
                    
    Next ADD

End Sub

 

●実行結果
実行後、セルにInterior .ColorIndex で表現できる56色を表示させました。

 

●実行前 ※実行前は、空白セルが表示されています。(クリックして拡大)

 

●実行後 ※A1~順番に56色全ての色が表示されました。背景色の番号は、色番号です。
(クリックして拡大)

 

 

Interior.Color = RGBでの背景色

 

●プログラム説明
下記のプログラムは、Interior.Color = RGB(255, 255, 255) での背景色の表示方法です。今回のプログラムにつきまして、青色の256を表示させるプログラムです。
Interior.Color = RGBで色が表現出来るのはR(赤)256×(緑)256×(青)256=1,677万色になります。

 

Sub CellsColor3()

    Dim CC As Integer
    Dim ADD As Range
    
    For Each ADD In Range("A1:K24")  'ループ処理させる範囲を指定します。A1~D10まで
                
        ADD.Interior.Color = RGB(0, 0, CC) 'RGBのB・・ブルーのみ1~255表示
        ADD.Value = CC
        
        CC = CC + 1
        
        If CC = 256 Then '1~255まで表示させたら抜け出す。
            Exit For
        End If
                    
    Next ADD

End Sub

 

●実行結果
上記、プログラムの実行結果は、青色256色の背景色が表示されました。

 

●実行前 ※実行前は、空白セルが表示されています。(クリックして拡大)

 

●実行後 ※青色での256色を表示しました。(クリックして拡大)

 

 

Interior.ColorIndex でのサンプルプログラム

 

●プログラム説明
続いてのプログラムは、担当者・役職が明記されている売上金額表があります。その表に対して、指定する「役職」・「売上金額(未満)」を指定して該当する担当者と売上金額に指定した色の背景色を塗りつぶすプログラムです。

 

Sub CellsColor4()

    Dim I As Long
    
    For I = 2 To 10  '2行目~10行目までループ
    
        If (Range("B" & I) = Range("F1")) And (Range("C" & I) < Range("F2")) Then
              'F1と同じ役職とF2の売上額を下回る条件で、担当者名と今月売上に背景色を付けるます。
               Range("A" & I).Interior.ColorIndex = 8
               Range("C" & I).Interior.ColorIndex = 6
 
        End If
            
    Next I

End Sub

 

●実行結果
実行後、セルで指定(役職・売上額)した条件により、該当する担当者と売上に、色が塗りつぶされました。

 

●実行前 ※プログラム実行前に、セル(F1)に役職・(F2)に売上金を入力します。
(クリックして拡大)

 

●実行後 ※条件に役職「主任」・売上金「100,000(未満)」の条件で実行しますと、下記の通りになります。(クリックして拡大)

 

最後まで、ご覧いただきまして誠に有難うございました。
以上で、EXCEL VBA Interior ThemeColor ColorIndexの説明でした。指定条件を設けて処理結果により、色分けする時などの表現を行う場合などには、便利な機能なので状況により利用して下さい。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。

 

AKIRA