【ExcelVBA・マクロ】空白セルだけに色をつけるマクロ|入力漏れを一瞬で見つける方法【コピペOK】

ExcelVBA

Excelでデータ入力をしていると、こんなことはありませんか?

  • 入力漏れがどこか分からない
  • 空白セルを目視で探すのが大変
  • チェック作業に時間がかかる

このような場合は、VBAで空白セルだけに色をつけることで一発解決できます。
入力漏れを瞬時に可視化できるため、実務でも非常に便利なテクニックです。


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

この記事でできること

  • 空白セルを自動で色付けできる
  • 入力漏れを一目で確認できる
  • 指定範囲だけ処理できる
  • シート全体にも対応できる

基本コード(コピペOK)

まずは一番シンプルなコードです。

Option Explicit

Sub HighlightBlankCells()

    Dim targetRange As Range
    Dim cell As Range

    ' 対象範囲(例:A1~D20)
    Set targetRange = Range("A1:D20")

    ' 色を一旦クリア
    targetRange.Interior.ColorIndex = xlNone

    ' 空白セルに色をつける
    For Each cell In targetRange
        If Trim(cell.Value) = "" Then
            cell.Interior.Color = RGB(255, 255, 0)
        End If
    Next cell

    MsgBox "空白セルに色をつけました。", vbInformation

End Sub

コードのポイント解説

① 対象範囲の指定

Set targetRange = Range("A1:D20")

色付けする範囲を指定しています。
必要に応じて変更できます。

② 色のリセット

targetRange.Interior.ColorIndex = xlNone

前回の色が残らないように、一度クリアしています。

③ 空白判定

If Trim(cell.Value) = "" Then

空白だけでなく、スペースだけのセルも検出できます。


応用①:シート全体を対象にする

データ全体をチェックしたい場合はこちらです。

Set targetRange = ActiveSheet.UsedRange

入力されている範囲だけを自動取得できます。


応用②:数式で空白のセルにも対応

数式で「空白に見えるセル」は、Valueでは検出できない場合があります。

If Trim(cell.Text) = "" Then

これで表示上の空白も検出できます。


応用③:特定列だけチェックする

例えばA列だけをチェックする場合はこちらです。

Set targetRange = Range("A:A")

応用④:色を変更する

色はRGBで自由に変更できます。

cell.Interior.Color = RGB(255, 200, 200)
  • 黄色 → RGB(255,255,0)
  • 赤 → RGB(255,0,0)
  • 薄ピンク → RGB(255,200,200)

実務での活用例

  • 入力チェック(未入力項目の確認)
  • アンケート集計の確認
  • 名簿の未入力チェック
  • 報告書の記入漏れ確認

特に入力チェック用途では、かなり使用頻度が高いマクロです。


よくあるエラーと対処法

① 空白なのに反応しない

スペースが入っている可能性があります。
Trim関数を使うことで解決できます。

② 数式の空白が反応しない

Textプロパティに変更してください。

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

Webからコピーしたコードの場合、次の問題が起きることがあります。

  • 全角スペース
  • 見えない特殊文字
  • 記号の崩れ

その場合は、

  1. 該当行を削除
  2. 手入力し直す

だけで解決することがあります。


まとめ

  • 空白セルはVBAで簡単に可視化できる
  • Trimで精度を上げる
  • UsedRangeで自動範囲対応できる
  • 入力チェックに非常に便利

空白セルの可視化は、データ品質を上げるための基本テクニックです。
このマクロを使えば、入力漏れチェックの時間を大幅に削減できます。

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

コメント

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