MENU

【初心者向け】VBAで条件によってセルの色を変える方法をわかりやすく解説!

の記事で解決できる3つの疑問

A子さん

売上が80点以上なら緑、それ以下なら色を変えたいんだけど
条件付き書式って限界ない?
VBAとかって難しいのかな…?

Excelの「条件付き書式」は便利ですが、細かい条件や複雑なルールを設定したい場合、かえってややこしくなることも。
そんなとき、VBA(マクロ)を使うと自由自在に色を変えられるのです。

結論:条件付き書式でもできるけど、VBAの方が柔軟で実務向き

たとえば「80点以上なら緑、60~79点なら黄色、それ未満なら赤」といった条件がある場合、条件付き書式では限界があります
VBAを使えば、複数条件・複数セル範囲にも対応できるため、実務でもかなり活用されています。

目次

Excel関数での限界とVBAの違い

関数や条件付き書式では、一つひとつ設定が必要です。複雑な条件が多いと、管理が大変になります。
また、関数だけでは「セルの色を変える」といった操作はできません

一方VBAでは、If文とセルの操作を組み合わせることで、**「条件ごとに色を自動で変更する」**処理が簡単に実現できます。

基本の構文:条件によってセルの色を変える

VBAでは、条件を If 文で判定し、Interior.Color を使ってセルの色を変更します。

If Cells(行, 列).Value >= 条件 Then
    Cells(行, 列).Interior.Color = RGB(赤, 緑, 青)
End If

例えば、100点満点のテストで80点以上は緑にしたい場合:

If Cells(2, 1).Value >= 80 Then
    Cells(2, 1).Interior.Color = RGB(0, 255, 0) ' 緑
End If

実践コード:80点以上なら緑、60~79点なら黄色、それ未満なら赤にする

たとえば、A列に点数が10行分入っているとして、それぞれの行のセル色を変えたいときは以下のように書きます。

Sub 色を変えるテスト()
    Dim i As Integer
    For i = 2 To 11 ' A2〜A11
        If Cells(i, 1).Value >= 80 Then
            Cells(i, 1).Interior.Color = RGB(0, 255, 0) ' 緑
        ElseIf Cells(i, 1).Value >= 60 Then
            Cells(i, 1).Interior.Color = RGB(255, 255, 0) ' 黄
        Else
            Cells(i, 1).Interior.Color = RGB(255, 0, 0) ' 赤
        End If
    Next i
End Sub

このマクロを実行することで、指定した点数に応じてセルの背景色が変わります

色を変えるときの注意点(RGBとColorIndex)

VBAで色を変える方法には主に2つあります。

方法特徴
ColorIndexExcelのパレット番号で色を指定(例:3 = 赤)
RGB(赤, 緑, 青)RGB値で自由に色を指定(例:RGB(255, 0, 0) = 赤)

初心者には、RGBのほうが直感的でおすすめです。Webで「RGB 色 一覧」と検索すると参考になります。

まとめ:条件分岐×セル操作=VBAの見せ場!

VBAを使えば、複雑な条件に応じてセルの色を自動で変更する処理が可能です。

  • Excelの条件付き書式では限界がある
  • VBAなら「条件+見た目」のカスタマイズが自由自在
  • If 文+Interior.Color を使えば簡単に実装できる

「データの傾向をパッと見で把握したい」という実務シーンにこそ、VBAによる色分け処理は力を発揮します。

関連記事リンク

  • 【初心者向け】VBAでIf文を使った条件分岐の基本を解説
  • 【初心者向け】変数とは?Dimによる宣言方法
  • 【初心者向け】VBAで型を指定しないとどうなる?落とし穴とその回避方法
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次