セルの背景色と網掛けを設定する

セルの背景色などセル自身の色などに関する情報を管理しているオブジェクトは Interior オブジェクトです。ここでは Excel VBA で Interior オブジェクトを取得してセルの背景色と網掛けを設定する方法について解説します。

(2022 年 06 月 14 日公開 / 2022 年 06 月 18 日更新)

セルの背景色を設定する

Rangeオブジェクトの「Interior」プロパティを使ってInteriorオブジェクトを取得します。

Dim interior1 As Interior

Set interior1 = Range("A1").Interior

Interiorオブジェクトは主にセルの背景色の設定に使われます。背景色を設定するにはInteriorオブジェクトの「ColorIndex」プロパティに値を設定します。「ColorIndex」プロパティは文字の色や罫線の色で使ったものと同じです。全部で57種類の色が用意されており、0から56のインデックス番号で指定します。

次のように記述します。

Dim interior1 As Interior

Set interior1 = Range("A1").Interior
interior1.ColorIndex = 3

まとめて次のように記述しても構いません。

Range("A1").Interior.ColorIndex = 3

サンプルプログラム

では簡単なサンプルで試してみましょう。

Sub テスト()
    
    Dim i As Integer, j As Integer
    
    For i = 1 To 8
        For j = 1 To 7
            Cells(i, j).Interior.ColorIndex = (i - 1) * 7 + j
            Cells(i, j).Value = (i - 1) * 7 + j
        Next j
    Next i

End Sub

上記マクロを実行すると次のようになります。

セルの背景色を設定する(1)

セルの背景に網かけを設定する

セルの背景に網かけの設定を行う方法について解説します。網かけは網のパターンと網の色を指定して行います。背景色の上に網の色でパターンを描画することになります。

まず網のパターンは、Interiorオブジェクトの「Pattern」プロパティで指定します。指定できる値は既に決められており、次の定数のいずれかを指定します。

定数網かけパターン
xlSolid塗りつぶし(網かけ無し)
xlGray7575%灰色
xlGray5050%灰色
xlGray2525%灰色
xlGray1612.5%灰色
xlGray86.25%灰色
xlHorizontal横縞
xlVertical縦縞
xlDown右下がり縞
xlUp右上がり縞
xlChecker斜線格子
xlSemiGray75極太斜線格子
xlLightHorizontal横縞(広)
xlLightVertical縦縞(広)
xlLightDown右下がり縞(広)
xlLightUp右上がり縞(広)
xlGrid格子
xlCrissCross斜線格子(薄)

実際の記述は次のようになります。

Dim interior1 As Interior

Set interior1 = Range("A1").Interior
interior1.Pattern = xlVertical

まとめて次のように記述しても構いません。

Range("A1").Interior.Pattern = xlVertical

次に網の色の指定です。Interiorオブジェクトの「PatternColorIndex」プロパティで指定します。「PatternColorIndex」プロパティは文字の色や罫線の色で使ったものと同じです。全部で57種類の色が用意されており、0から56のインデックス番号で指定します。

Dim interior1 As Interior

Set interior1 = Range("A1").Interior
interior1.PatternColorIndex = 23

まとめて次のように記述しても構いません。

Range("A1").Interior.PatternColorIndex = 23

サンプルプログラム

では簡単なサンプルで試してみましょう。

Sub テスト()
    
    Range("A1:C6").Interior.ColorIndex = 22
    
    Range("A1").Interior.Pattern = xlGray75
    Range("B1").Interior.Pattern = xlGray50
    Range("C1").Interior.Pattern = xlGray25
    Range("A2").Interior.Pattern = xlGray16
    Range("B2").Interior.Pattern = xlGray8
    Range("C2").Interior.Pattern = xlHorizontal
    Range("A3").Interior.Pattern = xlVertical
    Range("B3").Interior.Pattern = xlDown
    Range("C3").Interior.Pattern = xlUp
    Range("A4").Interior.Pattern = xlChecker
    Range("B4").Interior.Pattern = xlSemiGray75
    Range("C4").Interior.Pattern = xlLightHorizontal
    Range("A5").Interior.Pattern = xlLightVertical
    Range("B5").Interior.Pattern = xlLightDown
    Range("C5").Interior.Pattern = xlGrid
    Range("A6").Interior.Pattern = xlCrissCross
    Range("B6").Interior.Pattern = xlSolid

    Range("A8:C9").Interior.ColorIndex = 6
    Range("A8:C9").Interior.Pattern = xlGrid
    Range("A8").Interior.PatternColorIndex = 5
    Range("B8").Interior.PatternColorIndex = 10
    Range("C8").Interior.PatternColorIndex = 20
    Range("A9").Interior.PatternColorIndex = 30
    Range("B9").Interior.PatternColorIndex = 40
    Range("C9").Interior.PatternColorIndex = 50

End Sub

上記マクロを実行すると次のようになります。

セルの背景に網かけを設定する(1)

-- --

Excel VBA で Interior オブジェクトを取得してセルの背景色と網掛けを設定する方法について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。