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 |
xlPatternGray16 | 16% 灰色 | .Interior.Pattern = xlPatternGray16 |
xlPatternGray25 | 25% 灰色 | .Interior.Pattern = xlPatternGray25 |
xlPatternGray50 | 50% 灰色 | .Interior.Pattern = xlPatternGray50 |
xlPatternGray75 | 75% 灰色 | .Interior.Pattern = xlPatternGray75 |
xlPatternGray8 | 8% 灰色 | .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を使ってセルの外観をより詳細にカスタマイズすることができます。
このパターンは印刷時にカラー印刷できない場合パターンを用いて色の表現をするのに用いられます。印刷をしない場合はほぼ活用しないでしょう。