
Excel VBA セルや範囲の背景色を変更し、視認性を向上させたり、条件付きフォーマットのようにデータの状態を色で示したりする。使い方や注意点など、サンプルコードをもとに具体的に解説します。
Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!
👉 VBAエキスパート資格のメリットを詳しく知る
Excel VBA セルを条件付きで背景色を変更|シーン
以下のシーンで利用します。
1.強調したいデータ(例:期限切れ、異常値など)のハイライト
2.入力ミスのチェック結果を色で通知
3.条件に応じたセルの色分け(例:売上が一定以上なら緑、それ以下なら赤)
マクロができる人が少ない職場
数年後にはあなたより効率的な後輩にポジションを奪われるかもしれません。
👉 詳細はこちら
セルの背景色は ColorIndex または RGB を使って指定できます。
Excel VBA セルを条件付きで背景色を変更|サンプルコード
ColorIndexを使う方法(色番号指定)
Range("A1").Interior.ColorIndex = 3 ' A1セルを赤にする
「いまは、きちんと勉強しなくてもなんとかなる」は今だけ?
そのままいけば、AIの進歩で1年後には時代遅れの人になっているかも。
👉 詳細はこちら
・Copy でコピーした後、PasteSpecial Paste:=xlPasteValues で値のみ貼り付け
・Application.CutCopyMode = False でクリップボードをクリア
Value プロパティを使ったシンプルな方法
Option Explicit
Sub CopyValues_Direct()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") ' コピー元シート
ws.Range("D1:D10").Value = ws.Range("A1:A10").Value ' 値のみコピー
End Sub
2025年解消したい。「毎日、やることが多すぎて…そんなあなたへ」
👉詳細はこちら
RGBを使う方法(より細かい色指定)
Range("A1").Interior.Color = RGB(255, 0, 0) ' A1セルを赤にする
RGB(赤, 緑, 青) の値を 0~255 で指定
Range("A1").Interior.Color = RGB(0, 255, 0) ' 緑
Range("A1").Interior.Color = RGB(0, 0, 255) ' 青
Range("A1").Interior.Color = RGB(255, 255, 0) ' 黄色
・ColorIndex = -4142(または xlNone)で色をクリアできる
・ColorIndex は 56 色しかないが、RGB を使えば 1677万色 指定可能
・ColorIndex = xlAutomatic でデフォルト色に戻せる
指定範囲のセルを赤にする
Option Explicit
Sub 塗りつぶし_ColorIndex()
Range("A1:C3").Interior.ColorIndex = 3 ' A1~C3を赤にする
End Sub
セルの値に応じて色を変更
Option Explicit
Sub 条件付き塗りつぶし()
Dim rng As Range
For Each rng In Range("A1:A10") ' A1:A10の各セルをチェック
If rng.Value >= 100 Then
rng.Interior.Color = RGB(0, 255, 0) ' 100以上なら緑
Else
rng.Interior.Color = RGB(255, 0, 0) ' 100未満なら赤
End If
Next rng
End Sub
フォームのボタンをクリックして塗りつぶし(フォームモジュール)
Option Explicit
Sub btnFill_Click()
Sheet1.Range("B2:D4").Interior.ColorIndex = 6 ' 黄色にする
End Sub
ユーザーフォームで選択した色に塗りつぶす(フォームモジュール)
Option Explicit
Private Sub CommandButton1_Click()
Dim colorNum As Integer
colorNum = Val(txtColor.Value) ' テキストボックスから数値取得
If colorNum >= 1 And colorNum <= 56 Then
Range("A1").Interior.ColorIndex = colorNum
Else
MsgBox "1~56の値を入力してください", vbExclamation
End If
End Sub
Excel VBA セルを条件付きで背景色を変更|まとめ
方法 | 指定方法 | メリット | デメリット |
ColorIndex | 1~56の番号 | 簡単・扱いやすい | 色の種類が少ない |
RGB | RGB(赤, 緑, 青) | 色が自由に指定できる | コードがやや長くなる |
ExcelVBAでの 塗りつぶし は、単なる装飾ではなく データの視認性向上 に役立ちます。特に 条件付き塗りつぶし を活用すると、データ分析や異常値の発見がしやすくなるのでおすすめです。
Excel VBAで自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。
Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!