VBAでセルの書式設定(塗り潰し)

投稿日: 2024年6月12日

VBAでセルの塗りつぶしを設定する方法について詳しく解説します。
VBAを使用すると、Excelのセルをプログラムで自動的にフォーマットできます。以下に、セルの塗りつぶしの基本的な方法から応用的な使い方までを紹介します。

基本的なセルの塗りつぶし

セルの塗りつぶし色を設定するには、Interior.Colorプロパティを使用します。このプロパティは、RGB(赤、緑、青)カラーコードまたはExcelの標準カラーインデックスを使用して色を設定できます。

RGBカラーコードを使用した塗りつぶし
Sub FillSettingsRGB()
    ' A1セルを赤色に塗りつぶす
    Range("A1").Interior.Color = RGB(255, 0, 0)
End Sub
標準カラーインデックスを使用した塗りつぶし

カラーインデックスとはExcelで標準で持っている番号になります。
ColorIndexプロパティの色番号

Sub FillSettingsIndex()
    ' A1セルを黄色に塗りつぶす(6は黄色のインデックス)
    Range("A1").Interior.ColorIndex = 6
End Sub
応用
条件付きで塗りつぶしを変更する

特定の条件に基づいてセルの塗りつぶしを変更する場合、If文と組み合わせて使用します。

Sub ConditionalFill()
    Dim cell As Range
    For Each cell In Range("A1:A10")
        If cell.Value > 50 Then
            cell.Interior.Color = RGB(0, 255, 0) ' 値が50より大きい場合、緑色に塗りつぶす
        Else
            cell.Interior.Color = RGB(255, 0, 0) ' 値が50以下の場合、赤色に塗りつぶす
        End If
    Next cell
End Sub
複数のセルを一度に塗りつぶす

範囲を指定して複数のセルを一度に塗りつぶすこともできます。

Sub FillingMultipleCells()
    ' B1からB10までのセルを青色に塗りつぶす
    Range("B1:B10").Interior.Color = RGB(0, 0, 255)
End Sub
特定のパターンを使用した塗りつぶし

VBAでは、単純な色の塗りつぶしだけでなく、特定のパターンを使用した塗りつぶしも可能です。Interior.Patternプロパティを使用します。

定数名説明
xlPatternAutomatic自動(パターンなし).Interior.Pattern = xlPatternAutomatic 
xlPatternCheckerチェッカー.Interior.Pattern = xlPatternChecker
xlPatternCrissCrossクロスハッチ.Interior.Pattern = xlPatternCrissCross
xlPatternDown下向きの対角線.Interior.Pattern = xlPatternDown
xlPatternGray1616% 灰色.Interior.Pattern = xlPatternGray16
xlPatternGray2525% 灰色.Interior.Pattern = xlPatternGray25
xlPatternGray5050% 灰色.Interior.Pattern = xlPatternGray50
xlPatternGray7575% 灰色.Interior.Pattern = xlPatternGray75
xlPatternGray88% 灰色.Interior.Pattern = xlPatternGray8
xlPatternGrid格子状.Interior.Pattern = xlPatternGrid
xlPatternHorizontal水平線.Interior.Pattern = xlPatternHorizontal
xlPatternLightDown明るい下向き対角線.Interior.Pattern = xlPatternLightDown
xlPatternLightHorizontal明るい水平線.Interior.Pattern = xlPatternLightHorizontal
xlPatternLightUp明るい上向き対角線.Interior.Pattern = xlPatternLightUp
xlPatternLightVertical明るい垂直線.Interior.Pattern = xlPatternLightVertical
xlPatternNoneパターンなし.Interior.Pattern = xlPatternNone
xlPatternSemiGray75セミグレー75%.Interior.Pattern = xlPatternSemiGray75
xlPatternSolidソリッド(単色塗りつぶし).Interior.Pattern = xlPatternSolid
xlPatternUp上向きの対角線.Interior.Pattern = xlPatternUp
xlPatternVertical垂直線.Interior.Pattern = xlPatternVertical

パターンの使用例

Sub CheckeredPattern()
    With Range("A1").Interior
        .Pattern = xlPatternChecker
        .PatternColorIndex = 1 ' パターンの色(黒)
        .Color = RGB(255, 255, 0) ' 背景色(黄色)
    End With
End Sub

これらのパターンの種類を理解しておくことで、VBAを使ってセルの外観をより詳細にカスタマイズすることができます。

このパターンは印刷時にカラー印刷できない場合パターンを用いて色の表現をするのに用いられます。印刷をしない場合はほぼ活用しないでしょう。

記事