アクセス上位ページ
 
最近の更新内容

Excel VBA ≫ 1.基礎編 - セル・レンジ(6)-i.セルの書式(背景色・パターン)

【ページ内リンク】

セルの書式(背景色・パターン)

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



  • 塗りつぶしに関するプロパティの設定例
  • 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の実行結果
  • 塗りつぶし(背景色・パターン)をクリアする例
  • Sub sample6_20_2()
        'セルの背景色・パターンをクリア(その1)
        Range("B2").Interior.ColorIndex = xlNone    'またはxlColorIndexNone
    
        'セルの背景色・パターンをクリア(その2)
        Range("B4").Interior.Pattern = xlNone       'またはxlPatternNone
    End Sub
    
    ⇒ サンプルマクロ集 へ


セルの背景色 - Interior.Color Interior.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の整数値 カラーパレットの
インデックス値
※カラーパレットの一覧は
下記マクロ実行結果参照

  • カラーパレットの色とRGB値をシート上に一覧表示する
  • 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
    

    <実行結果>
    sample6_21の実行結果1
    sample6_21の実行結果2
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の実行結果
カテゴリ内ページ



Page
Top