APIで郵便番号から住所を取得する

今回は郵便専門ネット(http://yubin.senmon.net/service/)のAPIを使ってみます。

Option Explicit

Public Sub TestProc()
  Dim dat As Variant
  Dim oXML As Object
  Dim oNode As Object
  Const URL As String = "http://yubin.senmon.net/service/xmlrpc/"
  
  'XML設定
  dat = "<?xml version=""1.0"" encoding=""utf-8""?>" & vbCrLf
  dat = dat & "<methodCall>" & vbCrLf
  dat = dat & "  <methodName>yubin.fetchAddressByPostcode</methodName>" & vbCrLf
  dat = dat & "  <params>" & vbCrLf
  dat = dat & "    <param>" & vbCrLf
  dat = dat & "      <value>" & vbCrLf
  dat = dat & "        <string>9030815</string>" & vbCrLf
  dat = dat & "      </value>" & vbCrLf
  dat = dat & "    </param>" & vbCrLf
  dat = dat & "  </params>" & vbCrLf
  dat = dat & "</methodCall>"
  
  Set oXML = Nothing '初期化
  On Error Resume Next
  With CreateObject("MSXML2.XMLHTTP")
    .Open "POST", URL, False
    .setRequestHeader "Content-Type", "text/xml"
    .Send dat
    Set oXML = .responseXML
  End With
  On Error GoTo 0
  If oXML Is Nothing Then Exit Sub
  
  '確認用
  For Each oNode In oXML.selectNodes("methodResponse/params/param/value/array/data/value/struct/member")
  '  Debug.Print oNode.xml
    Debug.Print oNode.selectSingleNode("name").Text, oNode.selectSingleNode("value").Text
    Debug.Print "-----"
  Next
  Debug.Print oXML.selectNodes("methodResponse/params/param/value/array/data/value/struct/member[name='pref']/value").Item(0).Text & _
              oXML.selectNodes("methodResponse/params/param/value/array/data/value/struct/member[name='city']/value").Item(0).Text & _
              oXML.selectNodes("methodResponse/params/param/value/array/data/value/struct/member[name='town']/value").Item(0).Text
  Debug.Print oXML.selectNodes("methodResponse/params/param/value/array/data/value/struct/member[name='pref_kana']/value").Item(0).Text & _
              oXML.selectNodes("methodResponse/params/param/value/array/data/value/struct/member[name='city_kana']/value").Item(0).Text & _
              oXML.selectNodes("methodResponse/params/param/value/array/data/value/struct/member[name='town_kana']/value").Item(0).Text
  
End Sub
広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中


%d人のブロガーが「いいね」をつけました。