【ExcelVBA・マクロ】セルの値で行を自動色分けするマクロ|ステータス別に色変更する方法【コピペOK】

ExcelVBA

Excelで進捗管理やタスク管理をしていると、こんなことはありませんか?

  • 「完了」「未処理」が分かりにくい
  • 色分けしたいが手作業が面倒
  • ステータスごとに自動で色を変えたい

このような場合は、VBAでセルの値に応じて行を色分けするのがおすすめです。
一度作ればワンクリックで更新できるので、実務でも非常に便利です。


スポンサーリンク
スポンサーリンク

この記事でできること

  • セルの値に応じて行を色分けできる
  • ステータス別の色設定ができる
  • 複数条件で色を変えられる
  • 進捗管理表に活用できる

基本コード(コピペOK)

B列のステータスに応じて、行全体を色分けするコードです。

Option Explicit

Sub ColorRowsByStatus()

    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long

    Set ws = ActiveSheet

    ' B列の最終行を取得
    lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row

    ' 2行目から処理(1行目は見出し)
    For i = 2 To lastRow

        Select Case ws.Cells(i, "B").Value

            Case "未処理"
                ws.Rows(i).Interior.Color = RGB(255, 200, 200)

            Case "進行中"
                ws.Rows(i).Interior.Color = RGB(255, 255, 150)

            Case "完了"
                ws.Rows(i).Interior.Color = RGB(200, 200, 200)

            Case Else
                ws.Rows(i).Interior.ColorIndex = xlNone

        End Select

    Next i

    MsgBox "行の色分けが完了しました。", vbInformation

End Sub

コードのポイント解説

① 最終行の取得

lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row

B列の最終行を自動取得します。
データ量が変わっても対応できます。

② Select Caseで条件分岐

Select Case ws.Cells(i, "B").Value

セルの値に応じて処理を分けています。

③ 行全体を色付け

ws.Rows(i).Interior.Color = RGB(...)

行全体に色をつけることで視認性が向上します。


応用①:特定列だけ色付けする

行全体ではなく、B列だけ色付けする場合はこちらです。

ws.Cells(i, "B").Interior.Color = RGB(255, 200, 200)

応用②:部分一致で色分けする

「完了済み」「処理完了」などにも対応する方法です。

If InStr(ws.Cells(i, "B").Value, "完了") > 0 Then
    ws.Rows(i).Interior.Color = RGB(200, 200, 200)
End If

応用③:色をリセットしてから実行する

前回の色が残らないようにする場合はこちらです。

ws.Cells.Interior.ColorIndex = xlNone

応用④:複数条件を組み合わせる

If ws.Cells(i, "B").Value = "未処理" And ws.Cells(i, "C").Value = "重要" Then
    ws.Rows(i).Interior.Color = RGB(255, 0, 0)
End If

実務での活用例

  • タスク管理表(未処理・進行中・完了)
  • 問い合わせ対応管理
  • 案件進捗一覧
  • ステータス管理表

色分けするだけで、情報の把握スピードが大幅に向上します。


よくあるエラーと対処法

① 色が変わらない

セルの値が完全一致していない可能性があります。
スペースや全角に注意してください。

② コードは正しいのにエラーになる

コピー時に次の問題が発生することがあります。

  • 全角記号(=、>など)
  • 見えない特殊文字

その場合は、該当行を削除して手入力すると解決することがあります。


まとめ

  • セルの値に応じて色分けはVBAで簡単にできる
  • Select Caseで分岐すると分かりやすい
  • 行全体・セル単体どちらも対応可能
  • 進捗管理や業務一覧で非常に便利

色分けは「見やすさ」と「作業効率」を大きく改善します。
このマクロを使えば、Excelの管理表が一気に使いやすくなります。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

タイトルとURLをコピーしました