【Excel VBA】郵便番号検索APIで住所を自動取得するサンプルコード

VBA
記事内に広告が含まれています。

Excelに郵便番号の一覧はあるけど、住所を1件ずつ調べるのが面倒…

そんなときに、REST API を使えば住所を自動取得できます。

この記事では、Excel VBA から郵便番号検索APIを呼び出して住所を取得する方法を紹介します。

こんな場合にお勧め
  • 郵便番号から住所を自動入力したい
  • 大量の住所データを一括で変換したい
  • 手作業での住所検索をなくしたい
  • Excelだけで完結させたい

Excel 単体では住所検索ができないので、外部の「郵便番号検索 API」を使っています。

《広告》

使用するWebAPI

Excel単体で住所情報の取得・検索はできないので、下記「郵便番号検索API」の力を借りています。

サービス名郵便番号検索API
運営zip.cgis.biz
URL郵便番号検索API(http://zip.cgis.biz/)
機能郵便番号 → 住所情報(CSV)を返す API

※API にリクエストして結果を取得しています。

仕様

WebAPIを利用してExcelシートへ住所情報を出力していきます。

  • 入力:郵便番号(A列)
  • 出力:住所(B列)、住所カナ(C列)
  • 通信方式:REST API(GET)
  • 取得形式:CSV

Excelの構成

  • A列:住所を調べたい郵便番号のリスト
  • B列:取得した住所(漢字)
  • C列:取得した住所(カナ)
  • 実行ボタン:押すと VBA が動く

ソースコード

ソースコードの概要

以下の処理を実行します。

  1. 郵便番号を取得
  2. 郵便番号検索 API を呼び出し
  3. CSVを整形する
  4. シートへ出力

ソースコードのサンプル

Sub ボタン1_Click()
    Dim objXMLHttp As Object, zipArr
    Dim yubinNo As Long
    Dim line As String
    Dim splitLine() As String
   
    Dim i As Long
    i = 2 '行番号
    
    Do While Cells(i, 1).Value <> ""
    '入力値からハイフンの削除
     yubinNo = Replace(Worksheets("Sheet1").Cells(i, 1).Value, "-", "")
    
     Set objXMLHttp = CreateObject("MSXML2.XMLHTTP")
        objXMLHttp.Open "GET", "http://zip.cgis.biz/csv/zip.php?zn=" & yubinNo, False
        objXMLHttp.Send
     
     line = Replace(objXMLHttp.responseText, vbLf, ",")    '改行削除
     line = Replace(line, """", "")    'クォート削除
     line = Replace(line, "none", "")    'noneの文字列削除(情報がない場合、noneのため)
     
     splitLine = Split(line, ",")    'CSVを配列へ格納
     
     Worksheets("Sheet1").Cells(i, 2).Value = splitLine(13) & splitLine(14) & splitLine(15) & splitLine(16)
     Worksheets("Sheet1").Cells(i, 3).Value = splitLine(9) & splitLine(10) & splitLine(11) & splitLine(12)
     
     i = i + 1
    Loop
    
End Sub
補足
  • APIから返ってくるデータは CSV形式のテキスト
    → 「改行をカンマに置換」「余計な引用符を削除」などしてから分割処理しています。
  • 住所は B列に漢字住所、C列にカナ住所として出力しています。
  • Excel 単体では WEB API を呼び出せないため、外部 API を使う必要があります。

実行結果

ボタンを押すと、B列に住所、C列に住所(カナ)が自動入力されました。

参考情報

環境

下記の環境で作成・実行しております。

No.環境バージョン
1OSWindows10
Windows11
2ExcelExcel2016
環境一覧

以上です。

田舎のエンジニア

日本の田舎に住むITエンジニアです。
新卒からしばらくは東京都内で働いていましたが、30歳を過ぎた頃に自分の生き方を見直し、地方へ移住しました。
現在はノーコード、クラウド(Azure)、C# などを中心に、個人的な検証や学習を続けています。
自宅ではできるだけコストをかけず、実際に手を動かしながら試すことを大切にしています。
このブログでは、個人で取り組んだ技術的な試行錯誤や気づきを記録しています。

田舎のエンジニアをフォローする