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

条件付き書式って限界ない?
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つあります。
方法 | 特徴 |
---|---|
ColorIndex | Excelのパレット番号で色を指定(例:3 = 赤) |
RGB(赤, 緑, 青) | RGB値で自由に色を指定(例:RGB(255, 0, 0) = 赤) |
初心者には、RGBのほうが直感的でおすすめです。Webで「RGB 色 一覧」と検索すると参考になります。
まとめ:条件分岐×セル操作=VBAの見せ場!
VBAを使えば、複雑な条件に応じてセルの色を自動で変更する処理が可能です。
- Excelの条件付き書式では限界がある
- VBAなら「条件+見た目」のカスタマイズが自由自在
If
文+Interior.Color
を使えば簡単に実装できる
「データの傾向をパッと見で把握したい」という実務シーンにこそ、VBAによる色分け処理は力を発揮します。
関連記事リンク
- 【初心者向け】VBAでIf文を使った条件分岐の基本を解説
- 【初心者向け】変数とは?Dimによる宣言方法
- 【初心者向け】VBAで型を指定しないとどうなる?落とし穴とその回避方法
コメント