【VBA】「目視確認でミスりそう…」な不安を解消。Interior.Colorでセルの色付けする方法

【業務効率化】VBA
スポンサーリンク

こんにちは!ぐーです。
いつもブログをご覧いただき、ありがとうございます!

普段、エクセルで「終わった行を灰色にする」とか「要注意な数字を赤くする」といった作業、手動でやっていませんか?

そして、

  • 「あれ、一行飛ばしたかも…」
  • 「この赤色、さっきの赤と同じだっけ?」

なんて不安になって、何度も見返してしまいませんか。

私も心配性で、何度も確認しないと気が済まないタイプでした。

今日は、そんな「確認の不安」と「手作業のムダ」を同時に解消する、VBAのInterior.Colorプロパティについてご紹介します。

【業務効率化】VBAの記事を見る


なぜ「手動の色付け」はやめるべきなのか?

結論から言うと、私たちの目と脳は、単純作業に向いていないからです。

数千行あるデータを一つずつみて、条件に合うものを一つずつ色を塗る作業。100行目を超えたあたりで、集中力は確実に落ちます。

でもプログラムに任せてしまえば、1万行あろうと、一瞬で正確に、同じ判断をし続けてくれます。

基本のき:Interior.Color と RGB

VBAで色を指定する方法はいくつかありますが、一番間違いがなく、思い通りの色が出せるのがRGB関数との組み合わせです。

  • Red(赤)
  • Green(緑)
  • Blue(青)

この3つの光を0~255の数値で混ぜ合わせることで、約1677万色を表現できます。

まずは、「セルA1を真っ赤にする」コードを見てみましょう。

Sub MakeItRed()
    ' A1セルの背景色を赤にする
    Range("A1").Interior.Color = RGB(255, 0, 0)
End Sub

基本はこれだけです。

でも実務では「A1だけ赤くする」なんてことはほぼありません。たったそれだけならこれまで通り手動で色付けした方が良いです。

次にもう少し実用的な例をみてみましょう。

【コピペOK】「条件付き自動色塗り」マクロ

例えば、「B列に “完了” と入っている行を、薄いグレーにして目立たなくしたい(作業済みであることを可視化したい)」 というシーンありますよね。

これを手動でやると、フィルタをかけて、選択して、塗りつぶして…と、最低でも5クリックは必要です。

以下のコードなら、ボタン一つで終わります。

Sub HighlightCompletedRows()
    Dim i As Long
    Dim lastRow As Long
   
    ' データの最終行を取得(A列を基準)
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
   
    ' 2行目から最終行までループ処理
    For i = 2 To lastRow
        ' もしB列の値が「完了」だったら
        If Cells(i, 2).Value = "完了" Then
            ' その行のA列~E列を薄いグレー(RGB:240,240,240)にする
            Range(Cells(i, 1), Cells(i, 5)).Interior.Color = RGB(240, 240, 240)
        Else
            ' 「完了」じゃない場合は色を消す(ここ重要!)
            Range(Cells(i, 1), Cells(i, 5)).Interior.ColorIndex = xlNone
        End If
    Next i
   
    MsgBox "色付け完了です。"
End Sub

このコードのポイント

特に注目してほしいのは Else の部分です。

「完了」じゃなくなった(ステータスが戻った)時に、自動で色を消す処理を入れています。

これがないと、「未完了なのにグレーのまま」という一番怖いミスが起きます。

うっかりミスをせずに済みます。

色選びに迷わないための「おすすめRGB値」

「どの色が見やすいかわからない…」という悩みもよく聞きます。原色の赤(255, 0, 0)や青(0, 0, 255)は目に刺さるので、少し淡い色を使うのがコツです。

私がよく使う「目に優しいパステルカラー」です。数値を置いておきます。

  • 薄い赤(警告・エラー): RGB(255, 200, 200)
  • 薄い青(正常・入力可): RGB(200, 230, 255)
  • 薄い黄色(注意・要確認): RGB(255, 255, 200)
  • 薄いグレー(完了・対象外): RGB(240, 240, 240)

※塗ってある色と同じものではありません。

これらを先ほどのコードの RGB(…) の部分に入れ替えるだけで使えます。

【業務効率化】VBAの記事を見る


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でも、年間100万円以上の節約・資産管理・スキルアップで新NISAで年間360万円投資し、iDeCoもフル活用しています。日商簿記3級持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、稼ぐ力を高めるITスキルについて発信しています。

生活を豊かにしたくて、高配当株投資で年間配当金60万円をめざしています。現在は年間配当金25万円以上達成!

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

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