セル書式(背景色・パターン)の設定方法

このページでは、セルの書式設定画面の塗りつぶしタブの背景色・パターンに対応するプロパティについて説明します。

セルの書式設定画面の塗りつぶしタブ
セルの書式設定画面の塗りつぶしタブ
スポンサーリンク

塗りつぶしに関するプロパティの使用方法

セルの背景やパターンを設定するには、セルの 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
sample6_20の実行結果
sample6_20の実行結果

セルの背景、パターンをクリアする

セルの背景や、パターンをクリアするにはいくつか方法があります。覚えやすい方法を使うとよいでしょう。

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

 For…Next 基準セルからのオフセット 算術演算子

sample6_21の実行結果(前半)
sample6_21の実行結果(前半)
sample6_21の実行結果(後半)
sample6_21の実行結果(後半)

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
sample6_22の実行結果
sample6_22の実行結果
タイトルとURLをコピーしました