郵便番号が「未入力 or 桁数不正」な人を元シートで色付けするマクロ
これまでの「未入力/不正チェック」をさらに発展させて、別シートにリストアップするだけでなく、元の住所録シート上でエラーのあるセルを色付けするバージョンです。
これにより、元データを直接見ながら修正できるようになります。
マクロコード例
Sub 郵便番号チェック_色付け()
Dim lastRow As Long
Dim i As Long
Dim ws As Worksheet
Dim zipCode As String
' 元データのシートを設定(例:Sheet1)
Set ws = ThisWorkbook.Sheets("Sheet1")
' A列:氏名, B列:郵便番号 と仮定
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' まず既存の色をクリア
ws.Range("B2:B" & lastRow).Interior.ColorIndex = xlNone
For i = 2 To lastRow ' 1行目は見出しと仮定
zipCode = Trim(ws.Cells(i, "B").Value)
zipCode = Replace(zipCode, "-", "") ' ハイフンを除去
If zipCode = "" Then
' 未入力 → 赤色
ws.Cells(i, "B").Interior.Color = RGB(255, 200, 200)
ElseIf Len(zipCode) <> 7 Or Not IsNumeric(zipCode) Then
' 桁数不正 or 数字以外 → 黄色
ws.Cells(i, "B").Interior.Color = RGB(255, 255, 150)
End If
Next i
MsgBox "郵便番号のチェックが完了しました。未入力は赤、不正は黄色で表示しました。", vbInformation
End Sub
VBコードのポイント
- 色付けルール
- 未入力 → 赤色(
RGB(255,200,200)) - 桁数不正/数字以外 → 黄色(
RGB(255,255,150))
- 未入力 → 赤色(
- 既存の色をクリアしてから再チェックするので、修正後に再実行すれば色が消える。
- Trim+Replace で空白やハイフンを除去してから判定。
実行後のイメージ(元シート)
- 郵便番号が空欄のセル → 赤色で強調
- 郵便番号が「12345」や「12A4567」など不正 → 黄色で強調
- 正常な郵便番号(7桁数字 or 123-4567形式) → 色なし
応用アイデア
- 氏名セルも一緒に色付けして、誰のデータか一目でわかるようにする。
- 正常な郵便番号は自動で「123-4567」形式に整形する処理を追加。
- エラー件数をカウントして、メッセージボックスで報告。

