日本の郵便番号は 7桁の数字 が基本です。
入力データには 123-4567 や 123-4567 のようにハイフンや全角数字が混じることが多いので、ハイフン削除+桁数チェック を行うときれいに整えられます。
コード例
Sub CleanPostalCodes()
Dim i As Long, lastRow As Long
Dim code As String
' A列の最終行を取得
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lastRow
code = Cells(i, 1).Value
' 空白セルはスキップ
If code <> "" Then
' ハイフンを削除(半角・全角両方)
code = Replace(code, "-", "")
code = Replace(code, "-", "")
' 前後の空白を削除
code = Trim(code)
' 全角数字を半角に変換(StrConv関数)
code = StrConv(code, vbNarrow)
' 桁数チェック(7桁ならOK)
If Len(code) = 7 And IsNumeric(code) Then
Cells(i, 2).Value = code ' B列にクリーン郵便番号
Cells(i, 2).Font.Color = vbBlack ' 正常 → 黒文字
Else
Cells(i, 2).Value = "不正: " & code
Cells(i, 2).Font.Color = vbRed ' 不正 → 赤文字
End If
End If
Next i
End Sub
VB解説
Replace(code, "-", "")→ 半角ハイフン削除Replace(code, "-", "")→ 全角ハイフン削除StrConv(code, vbNarrow)→ 全角数字を半角に変換Len(code) = 7→ 桁数チェックIsNumeric(code)→ 数字かどうか判定
実行イメージ
| A列(元データ) | B列(クリーニング後) |
|---|---|
| 123-4567 | 1234567 |
| 123-4567 | 1234567 |
| 987654 | 不正: 987654(赤文字) |
| 98765432 | 不正: 98765432(赤文字) |
応用ポイント
- 不正データを別シートに出力 → データ監査に活用
- 郵便番号辞書と照合 → 実在するかチェック可能
- 住所と連動 → 郵便番号から住所を自動入力する仕組みに発展できる
👉 この郵便番号クリーニングを応用すれば、顧客リストやアンケートデータの整形が一気に楽になります。


