zip2adr

今年もやってくる年賀状の季節

住所録管理を簡単に!


郵便番号のリストから、郵便番号簿を検索し、csv形式の住所の一覧を出力するプログラムです.
ここ数年の平成の大合併により、多くの市町村の住所が変わってしまいました.また,市町村合併以外でも,政令指定都市に以降すると,区の単位で,住所が変わってしまいます.
日常生活には、特に影響はなかったのですが、年に1度の行事である年賀状作成時に、非常に大きな打撃を与えました.そうです.多くの住所が変更されてしまったのです.
そこで,これまでの住所を整理して新しい住所に更新するために、郵便番号から新しい住所を探し出し,その一覧表を生成するプログラムを作成してみました.
以下のような郵便番号のリストから,郵政公社から入手した郵便番号簿を検索し,csv形式の住所の一覧を出力します.
==================================
入力データ
==================================
0900836
9860124
3240502
3420027
2700175

==================================
出力データ
==================================
0900836,北海道,北見市,三輪
9860124,宮城県,石巻市,三輪田
3240502,栃木県,那須郡那珂川町,三輪
3420027,埼玉県,吉川市,三輪野江
2700175,千葉県,流山市,三輪野山

準備するもの

cygwinの環境

Windowsにcygwinをインストールした環境を準備してください。
標準的なcygwinの環境にdevel rubyを追加インストールしてください.
cygwinのインストール方法が判らない方は、以下のページを参考にしてください。
http://musashi.sourceforge.jp/cygwin/cygwin.html

郵便番号簿

 以下の郵政公社のホームページより,最新の郵便番号簿の「小書き」形式のデータで全国一括のファイルを入手してください.
http://www.post.japanpost.jp/zipcode/download.html
郵政公社の郵便番号簿のページ

http://www.post.japanpost.jp/zipcode/dl/kogaki.html
読み仮名データの促音・拗音を小書きで表記するもの 例:ホッカイドウ)

このデータはLZH形式で,圧縮されているので,適切なツールを使って展開すると,KEN_ALL.CSVという大きなファイルが取り出せます.

使い方

まず,以下のソースリストを適切なディレクトリにダウンロードしてください.
zip2adr.rb
サンプルデータ
ziplist.txt(サンプル郵便番号25件分)
bldg.txt(ビルの郵便番号)

実行方法

cygwinのコンソールを開き,以下のようにして実行してください.
ruby zip2adr.rb ziplist.txt KEN_ALL.CSV
0900836,北海道,北見市,三輪
9860124,宮城県,石巻市,三輪田
3240502,栃木県,那須郡那珂川町,三輪
3420027,埼玉県,吉川市,三輪野江
2700175,千葉県,流山市,三輪野山
1950054,東京都,町田市,三輪町
1950055,東京都,町田市,三輪緑山
3800803,長野県,長野市,三輪
3800816,長野県,長野市,三輪田町
5012513,岐阜県,岐阜市,三輪
5012514,岐阜県,岐阜市,三輪宮前
5012515,岐阜県,岐阜市,三輪宮西
5012517,岐阜県,岐阜市,三輪ぷりんとぴあ
5010619,岐阜県,揖斐郡揖斐川町,三輪
4211132,静岡県,志太郡岡部町,三輪
4490216,愛知県,北設楽郡東栄町,三輪
6691513,兵庫県,三田市,三輪
6330001,奈良県,桜井市,三輪
6360324,奈良県,磯城郡田原本町,三輪町
6470061,和歌山県,新宮市,三輪崎
7191132,岡山県,総社市,三輪
7430102,山口県,光市,三輪
8820885,宮崎県,延岡市,上三輪町
8820883,宮崎県,延岡市,下三輪町
8820884,宮崎県,延岡市,中三輪町

上記の方法は,検索結果を表示するだけです.検索結果をファイルに保存するには,以下のようにリダイレクトを利用し,ファイル名を指定して,直接書き込むようにしてください.
ruby zip2adr.rb ziplist.txt KEN_ALL.CSV > adrlist.csv

以下の場合も試してみてください.
ruby zip2adr.rb bldg.txt KEN_ALL.CSV
ruby zip2adr.rb bldg.txt KEN_ALL.CSV > bldglist.csv
ソート 以下のようにして実行すると,郵便番号が小さな順に並べ替えられます.
ruby zip2adr.rb ziplist.txt KEN_ALL.CSV | sort > adrlist.csv

処理速度

100件のデータを,2.00GHzのマシン上WindowsXP+Cygwinの環境下で実行した結果
処理時間4m14.562s
4*60+14.562/100=2.55秒

1000件では約40分,10000件では約6時間40分なので,少し,遅く感じるかも知れません.しかし,バッチ処理により一括変換できるので,コンピュータの空き時間を利用して変換すればよいでしょう.

事業所の個別郵便番号用変換プログラム

事業所の個別郵便番号は,一般の郵便番号とはデータ形式が異なるので,上記で紹介したプログラムでは変換できません. そこで,zip2adr4biz.rbを作成しました. 以下のリンクより,

zip2adr4biz:事業所の個別郵便番号用変換プログラムのページへ


応用編

出力されたcsv形式のデータは,OpenOfficeで読み込みが可能です.
これに,番地と名前を追加すれば,最新の住所録が完成です。
このデータを元に、参考文献1のオープンガイドブック OpenOffice.org 2.0のP226の「はがき印刷と宛名ラベルを作る」に書かれている手順に従って作業を行うと、高価な宛名書きソフトを購入しなくても、無料で年賀状の宛名印刷ができます。

参考文献

  1. オープンガイドブックOpenOffice.org 3 (DVD付)
  2. 超カンタン!OpenOffice3―〈世界標準〉高機能総合オフィスソフト…主要3ソフトの使い方! (I/O別冊)
  3. はじめてのOpenOffice3―ワープロ・表計算・プレゼン・データベース・図形描画統合ソフトを使いこなす! (I・ BOOKS)
  4. 今さら人に聞けないOpenOffice3の常識 writer編―初心者がつまづくワープロの盲点を現役インストラクターが伝授! (I/O BOOKS)
  5. 今さら人に聞けないOpenOffice3の常識 calc編 (I・O BOOKS)

おまけ

これで、住所録はできたと思いますが、年賀状のデザインは決まりましたか?

お悩みの方はこちらへ −−−> 年賀状の見本集

[戻る]