2013年02月20日

郵便番号で住所を自動入力

エクセルの郵便番号変換ウィザードを使えば郵便番号⇔住所が一括変換できるが、電話やFAX注文のデータを1件づつ入力する際には使い物にならない
そこで、VBAのユーザーフォームのテキスト入力欄に自動的に表示できないかと調べてみましたら、詳しく解説されたページがありました
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_130_050.html

まず、こちらのページから Excel サンプルと、郵便局のホームページから郵便番号データ全国一括版をダウンロード
サンプルを開き、郵便番号データファイルの取り込みをクリックすると自動的に郵便番号住所変換データベース (KEN_ALL.mdb) が生成される
試しに、郵便番号⇒住所変換サンプルをクリックしてテストしてみると正常に動くのがわかる

20233.jpg
このサンプルのモジュールを自分が使っているフォームにコピーして実行させると何故かコンパイルエラーとなる ちっ(怒った顔)
当然、TXT_ZIPCODE と TXT_JUSYO の部分は書き換えているのだが?
基礎から勉強してない私には手におえないと思っていたら、マクロ⇒visual basic editor⇒ツール⇒参照設定をクリックし、参照可能なライブラリ ファイルの中から「Microsoft ActiveX Data Objects 2.7 library」と「Microsoft ADO Ext. 2.7 for DDL and Security」にチェックを入れてやると動きました わーい(嬉しい顔)

なお、先に住所を地番等まで入力し、後から郵便番号を入れると折角入力した地番等が消えてしまうので、住所欄にデータがあれば動かないようにしました
If 住所.Text <> "" Then Exit Sub

逆に、住所を入れれば郵便番号が自動的に表示されるようしたいと思っても、私には到底無理なので、住所欄に住所を入力してボタンをクリックするとグーグルで郵便番号を検索した結果が出るようにしておきました
Private Sub CommandButton_Click()
Dim 番号検索 As String
番号検索 = "http://www.google.co.jp/search?sjif&q=" + 住所.Value + "%20郵便番号"
ThisWorkbook.FollowHyperlink address:=番号検索
End Sub


posted by ガンさん | Comment(2) | Word / Excel |
この記事へのコメント
エクセル2016で顧客管理簿を作成中です
ユーザーフォームに「郵便番号」(txtYubin)と
「住所」(txtad)があります
住所から郵便番号を表示できる様にと探していましたら
貴方の所にたどり着きました
グーグルを利用するのがとても気に入ってます
もう少し 詳しく教えて頂けませんでしょうか。
Posted by 無能おやじ at 2019年11月23日 15:54
コメント今頃気付いて (^^;
このブログは開店休業しています。
年をとるとパソコンについていけてません (-_-;)
Posted by ガンさん at 2019年12月25日 19:16
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: