郵便番号チェック+エラー件数をカウントして表示するマクロ
これまでの「未入力/不正チェック+色付け」に、エラー件数をカウントしてメッセージで報告する機能を追加しました。
これで「未入力が何件、不正が何件あるか」を一目で把握できます。
マクロコード例
Sub 郵便番号チェック_件数表示()
Dim lastRow As Long
Dim i As Long
Dim ws As Worksheet
Dim zipCode As String
Dim cntEmpty As Long, cntInvalid As Long
' 元データのシートを設定(例: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
' カウンタ初期化
cntEmpty = 0
cntInvalid = 0
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)
cntEmpty = cntEmpty + 1
ElseIf Len(zipCode) <> 7 Or Not IsNumeric(zipCode) Then
' 桁数不正 or 数字以外 → 黄色
ws.Cells(i, "B").Interior.Color = RGB(255, 255, 150)
cntInvalid = cntInvalid + 1
End If
Next i
' 結果を表示
MsgBox "郵便番号チェック完了" & vbCrLf & _
"未入力: " & cntEmpty & " 件" & vbCrLf & _
"不正: " & cntInvalid & " 件", vbInformation
End Sub
VBコードのポイント
- cntEmpty / cntInvalid で件数をカウント。
- 色付けルール
- 未入力 → 赤色
- 桁数不正/数字以外 → 黄色
- MsgBox で件数をまとめて表示。
実行後のイメージ(メッセージボックス)
郵便番号チェック完了
未入力: 3 件
不正: 2 件
応用アイデア
- 正常件数も表示して「全体のうち何件が正常か」を出す。
- エラー件数が0なら「全件正常」と表示する。
- エラー件数を別セルに書き出して、管理表として残す。

