VBA入門
セルの書式(塗りつぶし,Interior)

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
公開日:2013年5月以前 最終更新日:2021-09-03

第34回.セルの書式(塗りつぶし,Interior)


セルを目立たせる最も有効な手段は、セルを色で塗りつぶすことでしょう、
セルを塗りつぶす時のマクロVBAの解説です。


セル(Rangeオブジェクト)の塗りつぶし(パターン)は、Interiorプロパティになります。
Interiorプロパティは、Interiorオブシェクトを返します。

つまり、Interiorプロパティを経由して、Interiorオブシェクトを扱う事になります。
Range.InteriorでInteriorオブシェクトを扱い、セルの塗りつぶしを指定します。


マクロVBAでのInterior指定

Range.Interior.プロパティ = 設定値

Interiorオブジェクトには、以下のプロパティがあります。

プロパティ プロパティの説明 プロパティの設定値と説明
Color 塗りつぶす色 RGB値を表す長整数、色定数またはRGB関数
ColorIndex 塗りつぶす色 2003までの56色カラーパレットのインデックス
何色か分かりづらいのでColorを使ったほうが良い
Pattern 塗りつぶしのパターン XlPattern 列挙
PatternColor パターンの色 RGB値を表す長整数※1
PatternColorIndex パターンの色 2003までの56色カラーパレットのインデックス
何色か分かりづらいのでColorを使ったほうが良い

2007以降では、グラデーションの指定もできますが、
かなり複雑になりますので、ここでは説明を省略します。
必要な場合は、マクロの記録を使用して下さい。
ただし基本的には、あまりグラデーションは使わない方が良いと思います。
もし必要なら、事前にワークシートに設定しておく事をお勧めします。


色定数

エクセルには、色を表す定数が容易されています。

vbBlack
vbRed
vbGreen
vbYellow
vbBlue
vbMagenta マゼンタ
vbCyan シアン
vbWhite

Range("セル範囲").Interior.Color = vbRed '赤
Range("セル範囲").Interior.Color = vbWhite '白
Range("セル範囲").Interior.Color = vbBlack '黒

RGB値を表す長整数の代わりに、上記の定数を使用することが出来ます。
カラー定数以外にも、XlRgbColor列挙などで指定することもできます。
Colorプロパティの設定値一覧
・Excelのカラーについて ・ColorIndex、カラー定数、XlRgbColor列挙、RGB値 ・システム カラーの定数 ・サイト内の色関連関連ページ


RGB関数

RGB値を作成する関数として、
RGB関数が用意されています。

RGB(red, green, blue)

red, green, blue、それぞれを0~255で指定します。

Range("セル範囲").Interior.Color = RGB(255, 0, 0) '赤
Range("セル範囲").Interior.Color = RGB(255, 255, 255) '白
Range("セル範囲").Interior.Color = RGB(0, 0, 0) '黒


塗りつぶしなし

塗りつぶしを解除して、塗りつぶしなしにする場合は、

Range("セル範囲").Interior.ColorIndex = xlNone

見た目の結果は、白の塗りつぶしと同じように見えますが、
あくまで、「白の塗りつぶし」と「塗りつぶしなし」は違うということを理解しておいてください。


条件付き書式との使い分け

条件付き書式で、データに応じて色を変更することができます。
多くの場合、マクロVBAで塗りつぶすより簡単なので良く使われていると思います。

ただし、条件付き書式は行列の挿入削除により分断が起こり、
シートが重くなる一因になることがあります。
このような場合は、
条件付き書式は使わずにマクロで塗りつぶした方が効率的かつ保守しやすくなります。




同じテーマ「マクロVBA入門」の記事

第31回.セルの書式(表示形式,NumberFormatLocal)
第32回.セルの書式(配置,Alignment)
第33回.セルの書式(フォント,Font)
第34回.セルの書式(塗りつぶし,Interior)
第35回.セルの書式(罫線,Border)
第36回.総合練習問題4
第37回.ブック・シートの指定
第39回.セルのクリア(Clear,ClearContents)
第40回.セルのコピー・カット&ペースト(Copy,Cut,Paste)
第41回.セルのコピー&値の貼り付け(PasteSpecial)
第42回.セルをコピーするとは


新着記事NEW ・・・新着記事一覧を見る

ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)
VBAでクリップボードへ文字列を送信・取得する3つの方法|VBA技術解説(2023-12-07)
難しい数式とは何か?|エクセル雑感(2023-12-07)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.並べ替え(Sort)|VBA入門
8.条件分岐(IF)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ