Excel VBA | Cells を使った郵便番号クリーニング(ハイフン削除+7桁チェック)

Excel VBA VBA
スポンサーリンク

日本の郵便番号は 7桁の数字 が基本です。
入力データには 123-4567123-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-45671234567
123-45671234567
987654不正: 987654(赤文字)
98765432不正: 98765432(赤文字)

応用ポイント

  • 不正データを別シートに出力 → データ監査に活用
  • 郵便番号辞書と照合 → 実在するかチェック可能
  • 住所と連動 → 郵便番号から住所を自動入力する仕組みに発展できる

👉 この郵便番号クリーニングを応用すれば、顧客リストやアンケートデータの整形が一気に楽になります。

VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました