セルの背景色と網掛けを設定する
セルの背景色などセル自身の色などに関する情報を管理しているオブジェクトは 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 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。