セルの背景色を設定するInteriorプロパティについて解説します。
基本構文
設定セルまたはセル範囲.Interior.Color = RGB(R値, G値, B値)
サンプルコード
' セルの背景色を赤色にする Range("A1:C3").Interior.Color = RGB(255, 0 0) ' 色定数やカラーパレット番号でも設定可能 Range("A1:C3").Interior.Color = vbRed Range("A1:C3").Interior.ColorIndex = 3 ' 赤色
解説
セルの背景色を設定するには、
RangeオブジェクトのInteriorプロパティを使用します。
- RGB値やカラー定数で指定する場合はInterior.Color
- カラーパレット番号で指定する場合はInterior.ColorIndex
に値を代入します。
背景色を解除する
セルの背景色を「色なし」にするには、以下のいずれかのコードを実行します。
Range("A1:C3").Interior.ColorIndex = 0 Range("A1:C3").Interior.Pattern = xlNone
「塗りつぶしを解除」という意味では後者のPatternが正規のコードと思いますが、
カラーパレットの0番目が「色なし」のため前者でも設定が可能です。
前者の方が覚えやすいので、私は前者で書いています。
背景色を調べる/コピーする
Interior.Colorはプロパティですので、設定値を読み取ることができます。
Debug.Print Range("A1").Interior.Color ' ↑A1セルのColor値(13693658のような数値)が表示されます。
この時表示される値は「13693658」のような数値なのですが、
これはRGB値をB*255*255+G*255+Rで計算した値です。
背景色は3つの整数ではなくこの1つの整数で記憶されているため、
普通にプロパティを取得してもRGBそれぞれの値はわかりません。
よってR,G,B値をそれぞれ調べたい場合は、セルの書式設定を開いて確認するか、
RGB値→各値の変換関数を用意する必要があります。
といってもセルの背景色の設定にはRGB関数を必ず使う必要はなく、
この整数(RGB値)をそのまま使用しても背景色を設定することができます。
↓同じ設定 Range("A1").Interior.Color = 13693658 Range("A1").Interior.Color = RGB(218, 242 ,208)
よってセルの背景色を他のセルの背景色にコピーするような場合は、
書式貼付やRGB値をそれぞれ調べる必要はなく、以下のコードで実行可能です。
' A1セルの背景色をC1セルの背景色に Range("A1").Interior.Color = Range("C3").Interior.Color
今回の.Interior.Colorと同様、
「Rangeオブジェクト.プロパティ = Rangeオブジェクト.プロパティ」
という記述でそのプロパティのコピーができますのでこの仕様は覚えておきましょう。
また、もう一つのテクニックとして、イミディエイトウィンドウに
?Selection.Interior.Color
と入力することで、選択セルのRGB値を調べることができます。
この時出力された値をそのままコードに使っても、
そのセルに使った色に設定するコードが書けますので覚えておきましょう。
' イミディエイトウィンドウにて ?Selection.Interior.Color ' ← 13693658 のようにRGB値が表示される ' メインコードでその数値を使う Range("A1").Interior.Color = 13693658
おまけ:お気に入りのRGB値を保存しておく
上記の「RGB値」を変数や定数で定義しておけば、
Const 見出し色 = 13693658 ' メインコードで定数を使う Range("A1").Interior.Color = 見出し色
このように使いまわす色の設定を管理することができます。
これをEnum定数と組み合わせると、
' 汎用関数モジュールの上部などに Public Enum Color背景_薄色 灰 = 14277081 赤 = 14079740 橙 = 14083324 黄 = 13431551 緑 = 14348258 青 = 16247773 紫 = 16771059 End Enum ' メインコード Range("A1").Interior.Color = Color背景_薄色.緑
こんな風にお気に入りのカラーパレットを設定しておくこともできます。
Enumにすることで選択肢から選べるようになのがなかなか便利ですね。


よく使う色の組みあわせがある方は、Enum定数の採用も考えてみてください。
詳しくはこちらの記事をどうぞ
www.limecode.jp