このページでは、セルの書式設定画面の塗りつぶしタブの背景色・パターンに対応するプロパティについて説明します。
塗りつぶしに関するプロパティの使用方法
セルの背景やパターンを設定するには、セルの Interior プロパティを使用します。Interior プロパティには、さらにその色やパターンの値を取得・設定できるプロパティが用意されています。
Sub sample6_20()
'セル背景の色、パターン設定
With Range("B2").Interior
'背景色
.Color = vbYellow
'背景パターン
.Pattern = xlGray50
.PatternColorIndex = xlAutomatic
End With
'セル背景のグラデーション設定
With Range("B4").Interior
'セル背景をグラデーション設定にします。
.Pattern = xlPatternLinearGradient
With .Gradient
'グラデーションの方向(0~360)
.Degree = 0
'グラデーションの切替ポイントの設定
With .ColorStops
'最初に初期化
.Clear
'グラデーションの切替ポイント(0~1)を追加して色を設定
.Add(0).Color = vbRed
.Add(0.5).Color = vbBlue
.Add(1).Color = vbGreen
End With
End With
End With
End Sub
セルの背景、パターンをクリアする
セルの背景や、パターンをクリアするにはいくつか方法があります。覚えやすい方法を使うとよいでしょう。
Sub sample6_20_2()
'セルの背景色・パターンをクリア(その1)
Range("B2").Interior.ColorIndex = xlNone 'またはxlColorIndexNone
'セルの背景色・パターンをクリア(その2)
Range("B4").Interior.Pattern = xlNone 'またはxlPatternNone
End Sub
セルの背景色 – Interior.Color, .ColorIndex プロパティ
セルの背景色は Interior.Color または Interior.ColorIndex プロパティのどちらかを設定します。それぞれ色の指定の仕方が異なりますので、扱いやすい方を使用しましょう。
- Interior.Color ・・・ 色定数またはRGB値で色を指定
- Interior.ColorIndex ・・・ カラーパレットのインデックス値で色を指定
※背景色を”塗りつぶしなし”に設定する場合は定数を指定
プロパティ | 定数・値 | 説明 |
---|---|---|
Interior.Color | vbBlack | 黒色 |
vbRed | 赤色 | |
vbGreen | 緑色 | |
vbBlue | 青色 | |
vbYellow | 黄色 | |
vbMagenta | マゼンタ | |
vbCyan | シアン | |
vbWhite | 白色 | |
RGB関数の戻り値 ※R,G,Bは0~255の範囲 |
RGB値(Long型) | |
Interior.ColorIndex | xlNone または xlColorIndexNone |
塗りつぶしなし |
1~56の整数値 | カラーパレットのインデックス値 ※カラーパレットの一覧は 下記マクロ実行結果参照 |
カラーパレットの一覧化
次のサンプルマクロはワークシート上にカラーパレットの一覧を作成する例です。
Sub sample6_21()
'カラーパレットの色とRGB値を一覧表示する
Dim i As Integer
Dim lngColor As Long '色は長整数型で扱います。
'タイトル編集
Range("A1").Value = "インデックス"
Range("B1").Value = "色"
Range("C1").Value = "RGB値(R)"
Range("D1").Value = "RGB値(G)"
Range("E1").Value = "RGB値(B)"
'列幅を自動調整
Columns("A:E").AutoFit
For i = 1 To 56
With Cells(i + 1, 1)
'インデックス
.Value = i
'色
.Offset(0, 1).Interior.ColorIndex = i
'現在の色を変数に格納
lngColor = .Offset(0, 1).Interior.Color
'RGB値(R)・・・下位8ビットを抽出
.Offset(0, 2).Value = lngColor Mod 256
'RGB値(G)・・・9~16ビットを抽出
.Offset(0, 3).Value = (lngColor \ 256) Mod 256
'RGB値(B)・・・17~24ビットを抽出
.Offset(0, 4).Value = lngColor \ (256 ^ 2)
End With
Next i
End Sub
ColorIndex はカラーパレットに設定された色をインデックス値で指定するものです。カラーパレットの色は変更可能であるため、同じインデックス値でもカラーパレットの色を変えると異なる色になってしまうことに注意しましょう。
セルのパターン – Interior.Pattern プロパティ
セルのパターンは Interior.Pattern プロパティに下表の定数を設定することで変更することができます。
プロパティ | 定数 | 説明 |
---|---|---|
Interior.Pattern | xlNone またはxlPatternNone | 塗りつぶしなし |
xlSolid | 純色 (1,1) | |
xlGray75 | 75% 灰色 (1,2) | |
xlGray50 | 50% 灰色 (1,3) | |
xlGray25 | 25% 灰色 (1,4) | |
xlGray16 | 16% 灰色 (1,5) | |
xlGray8 | 8% 灰色 (1,6) | |
xlHorizontal | 濃い横線 (2,1) | |
xlVertical | 濃い縦線 (2,2) | |
xlDown | 左上から右下までの濃い対角線 (2,3) | |
xlUp | 左下から右上までの濃い対角線 (2,4) | |
xlChecker | チェッカーボード (2,5) | |
xlSemiGray75 | 75% 濃いモアレ (2,6) | |
xlLightHorizontal | 明るい横線 (3,1) | |
xlLightVertical | 明るい縦線 (3,2) | |
xlLightDown | 左上から右下までの明るい対角線 (3,3) | |
xlLightUp | 左下から右上までの明るい対角線 (3,4) | |
xlGrid | グリッド (3,5) | |
xlCrissCross | 十字線 (3,6) |
セルのパターンには Interior.PatternColor または Interior.PatternColorIndex プロパティに定数や値を設定することで色を設定できます。
Sub sample6_22()
With Range("B2").Interior
'赤色のグリッドを設定
.Pattern = xlGrid
.PatternColor = vbRed
End With
End Sub