Excel住所から郵便番号を一括逆引き!2026年最新の自動変換ワザ
Excel住所から郵便番号を一括逆引き!2026年最新の自動変換ワザを徹底追究! 読者が気になる 情報と解説を分かりやすく展開します。
実際のビジネス現場から持ち込まれる住所データには、全角数字、不要なスペース、ビル名の混入など、多様なノイズが含まれています。変換成功率を極限まで高めるための「住所表記揺れ一括修正エクセル」テクニックと、大量件数を安全に回す「Excel郵便番号VBAマクロ自動化」のコード例を確認しましょう。
住所データのクレンジングを行う必須関数
APIに住所を渡す前に、隣の作業列で以下の関数を組み合わせ、文字列を正規化します。
=TRIM(ASC(SUBSTITUTE(A2, " ", " ")))
この数式により、全角スペースが半角に統一され、連続する余計な空白が削除(TRIM)され、全角英数が半角(ASC)に変換されます。APIの照合エンジンは半角数字や統一されたフォーマットに対して最も高いヒット率を示します。
APIサーバーに負荷をかけない安全なVBAコード例
1,000件を超えるリストを処理する場合、ワークシート関数ではなく、1件ごとにウェイト(待機時間)を挟むVBAマクロを組むのがプロの現場の鉄則です。
Sub ConvertAddressToZip() Dim http As Object Dim url As String, address As String, zipCode As String Dim lastRow As Long, i As Long Set http = CreateObject("MSXML2.XMLHTTP") lastRow = Cells(Rows.Count, "A").End(xlUp).Row For i = 2 To lastRow address = Cells(i, 1).Value If address <> "" Then ' ExcelAPIを利用した逆引きリクエスト url ="https://api.excelapi.org/post/zipcode?address=" & WorksheetFunction.EncodeURL(address) http.Open "GET", url, False http.send If http.Status = 200 Then zipCode = http.responseText Cells(i, 2).Value = zipCode Else Cells(i, 2).Value ="取得失敗" End If ' サーバー負荷軽減のため0.1秒待機 Application.Wait (Now + TimeValue("00:00:01") / 10) End If Next i Set http = Nothing MsgBox "郵便番号の変換が完了しました!", vbInformation End Sub
このマクロを実行すれば、A列の住所を1行ずつ読み込み、B列に取得した郵便番号を書き込みながら進んでいきます。数式ではなく「値」として直接セルに書き込まれるため、後からシートが重くなる心配もありません。