セルの背景色と網掛けを設定する
セルの背景色などセル自身の色などに関する情報を管理しているオブジェクトは Interior オブジェクトです。ここでは Excel VBA で Interior オブジェクトを取得してセルの背景色と網掛けを設定する方法について解説します。
(Last modified: )
セルの背景色を設定する
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
上記マクロを実行すると次のようになります。
セルの背景に網かけを設定する
セルの背景に網かけの設定を行う方法について解説します。網かけは網のパターンと網の色を指定して行います。背景色の上に網の色でパターンを描画することになります。
まず網のパターンは、Interiorオブジェクトの「Pattern」プロパティで指定します。指定できる値は既に決められており、次の定数のいずれかを指定します。
| 定数 | 網かけパターン |
|---|---|
| xlSolid | 塗りつぶし(網かけ無し) |
| xlGray75 | 75%灰色 |
| xlGray50 | 50%灰色 |
| xlGray25 | 25%灰色 |
| xlGray16 | 12.5%灰色 |
| xlGray8 | 6.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
上記マクロを実行すると次のようになります。
-- --
Excel VBA で Interior オブジェクトを取得してセルの背景色と網掛けを設定する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。