🎨
HighlightBlankCells
書式設定選択範囲の空白セルを黄色でハイライトします
選択した範囲内のすべての空白セルを自動的に検出し、指定した背景色でハイライト表示するマクロです。データ入力漏れの確認・必須項目の未入力チェック・フォームの記入箇所の案内など、様々な用途に使えます。大量データの中から空白セルを目視で探す手間を省き、未入力箇所を一目で把握できます。ハイライト後に入力が完了したら書式をクリアするだけでシンプルに管理できます。内部ではSpecialCells(xlCellTypeBlanks)メソッドを使って空白セルのみを高速に抽出し、Interior.Colorで色付けしています。全セルを1つずつループでチェックする方法より処理が速く、大規模なシートでも快適に動作します。入力が完了した箇所はResetCellStylesで個別にクリアするか、再実行して色を上書きする運用がシンプルです。

📖 使い方
- VBAエディタを開く(Alt + F11)
- モジュールを挿入(挿入 > モジュール)
- 下記VBAコードをコピー&ペースト
- ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: 対象範囲を選択してから HighlightBlankCells を実行します
🎯 活用シーン
- ✓入力フォームやアンケートシートで未記入の必須項目を一目で確認し、回答漏れをすぐに把握したいとき
- ✓データ入力後の品質チェックとして、入力漏れがある行を視覚的に特定してデータ完全性を確認したいとき
- ✓複数人が入力を分担したシートで、未入力のセルを色でハイライトして作業の進捗を管理したいとき
- ✓複数人で分担して入力するシートで、誰がどこまで入力を終えたかを視覚的に共有したいとき
- ✓システム移行時のマスターデータで未設定項目を洗い出し、移行前チェックリストとして活用したいとき
💡 実装のヒント
- ▸数式が入っているが結果が空文字列のセルは「空白ではない」と判定される場合があります。そのような場合はIsEmpty関数ではなくLen関数での判定に変更が必要です。
- ▸ハイライトした空白セルへの入力を促す目的で使う場合、条件付き書式と組み合わせて入力後に自動でハイライトが消えるようにすると便利です。
- ▸スペースのみが入力されているセルは空白として判定されません。TrimSpacesを実行してから確認することをお勧めします。
- ▸数式の結果が空文字列になっているセルは対象外となるため、そのようなケースを検出したい場合はLen関数を使った別ロジックが必要です。
- ▸ハイライト色を薄い色にしておくと、入力後にセルの文字が読みにくくなるのを防げます。
💻 VBAコード
' HighlightBlankCells
' -----------------
' Macro Name: HighlightBlankCells
' Description: 選択範囲の空白セルを黄色でハイライトします
' Parameters: なし
' Returns: なし
' Usage: 対象範囲を選択してから HighlightBlankCells を実行します
' -----------------
Sub HighlightBlankCells()
On Error GoTo ErrorHandler
Dim rng As Range
Dim cell As Range
Dim highlightCount As Long
If TypeName(Selection) <> "Range" Then
MsgBox "セル範囲を選択してから実行してください", vbCritical, "エラー"
Exit Sub
End If
Set rng = Selection
highlightCount = 0
For Each cell In rng
If IsEmpty(cell) Then
cell.Interior.Color = RGB(255, 255, 0)
highlightCount = highlightCount + 1
End If
Next cell
MsgBox highlightCount & " 個の空白セルをハイライトしました", vbInformation, "完了"
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しました:" & vbCrLf & Err.Description, vbCritical, "エラー"
End Sub