郵便番号データDB変換の説明

[起動・終了} [郵便番号検索データベース作成] [データベースファイル]
起動

 郵便番号データDB変換は、ExcelのVBAを使って作成されていますので、起動時には、Excelにて下記のようなマクロの有効/無効の選択のメッセージボックスが表示されるます。

必ず、[マクロを有効にする(E)]を選択(クリック)
して下さい。
有効にしない場合は必要な処理が実行されません。
(表示されるウインドウの形や内容は、OSやExcelのバージョン、起動時の操作方法などにより異なる)

マクロ確認用のウィンドウ


 起動されると、通常のExcel状態とは異なり、シートが表示されたExcel本体の表示は行われず、下記のフォームのみが画面に表示されます。

1 [郵便番号検索データベース作成]のボタン
 郵便番号変換用のデータベースファイルを作成するための新規・追加・更新・分割の処理を行う場合に選択(クリック)する。
 使用するデータは、郵政公社の住所の郵便番号のダウンロードサービスのホームページで公開されている郵便番号データファイルをダウンロードして用意する必要があり、このフォーマットで展開するようになっている。

2 [終了]のボタン
 通常と異なりExcel本体が表示されていないので、フォーム上の[終了]のボタンをクリックする事で終了する。

データベース定義処理の起動状態


郵便番号検索データベース作成  [↑ページの先頭]

 [郵便番号検索データベース作成]のボタンをクリックすると、初期起動の場合には下記のフォーム1、既に作成されている場合にはフォーム2が表示され、郵便番号から該当の住所に変換するためのデータベースファイルを作成するための新規・追加・更新・分割の各処理が行える。各処理は、

新規 : 新規にデータベースファイルを作成する場合の処理。(最初はこの処理)

追加 : 新たな都道府県のデータを追加する場合の処理。

更新 : 既に登録済みの都道府県のデータを更新する場合の処理。

分割 : 複数の都道府県のデータが入っているCSVデータを、各都道府県のデータに分割する場合の処理。

のようになっており、操作はまず、実行したい処理のオプションボタンをクリックした後、[参照]ボタンをクリックして登録する都道府県のCSVデータを指定し、その後[実行]ボタンをクリックすることで該当の処理が実行される。

初期の場合の郵便番号のデータベースの作成/更新のフォーム●フォーム1
初期起動の場合の表示フォーム。

初期の場合には、
 ・新規
 ・追加
 ・分割
の処理が行える。

既に作成されている場合の郵便番号のデータベースの作成/更新のフォーム●フォーム2
既にデータベースファイルが作成されている場合の表示フォームで、現在の各都道府県の登録状態が表示され、このフォーム例では、
北海道と沖縄
が登録されている。

このフォームでは、
 ・追加
 ・更新
 ・分割
の処理が行える。

1 新規
 「新規」のオプションボタンをクリックした後、まず、登録する郵便番号の都道府県のデータを「郵便番号のCSVファイル」の位置に直接入力するか、[参照]をクリックして登録する都道府県のデータを指定する。[参照]をクリックした場合は、下記のようにWindowsのファイルを「開く」を行った場合と同じフォームが表示されるので、普段行っている操作と同じ、該当のファイルを選択して[開く]をクリックする。

ファイル指定のフォーム このフォーム表示はWindowsのバージョンによって異なる。

この表示例では、全ての都道府県が含まれているファイルと、「分割」を実行した後に作成された、各都道府県のデータがある状態。


 クリックされると、下記の選択したファイルで良いかの確認メッセージが表示されるので、処理を選択する。

 [はい(Y)]  : 選択したファイル名でよい場合。
 [いいえ(N)] : 中止または、違うファイルを選択する場合。

指定ファイル確認メッセージ


 [はい(Y)]を選択した場合、フォームに選択したファイル名が表示されると共に、フォームの下側に選択されたファイルのデータが決められたフォーマットかのチェックを行っているメッセージが表れ、問題が無い場合はチェックが終了すると表示が消え、問題がある場合はエラーメッセージが表示されるので、再度ファイルの選択から行う。(メッセージの右側にチェック中のカウントが100件ごとに更新表示され。チェックの処理時間は全ての都道府県を含んだデータの場合、CPUの性能によって異なるが、少し時間がかかります。(参考 CPU 2.4GHzで約10秒))

フォーマットのチェック中の状態

 チェックが問題なく終了した場合は、次に、実際にデータベースに登録するための[実行]をクリックする。クリックされると、下記のような登録処理中のメッセージがフォームの下側に表示され、問題無く登録が終了すると、下記のような「[新規]処理が完了しました。」のメッセージが表示される。これにて、起動されたフォルダに、「郵便番号DB.mdb」というデータベースファイルが作成されており、登録された都道府県の郵便番号から住所変換が可能となる。(登録の処理時間は、全ての都道府県の場合、参考 CPU 2.4GHzで約40秒)(フォーム1の状態で[更新]で[実行]を繰り返した場合、最後に実行した都道府県のデータのみが有効となる。)

登録処理中のメッセージ表示状態

登録処理中のメッセージ表示状態

2 追加
 都道府県ごとに登録して使用している場合に、新たな都道府県のデータを追加して登録したい場合の処理で、ファイルの選択から登録までの基本的な操作は[新規]と同じで、既に登録されている都道府県のデータをと指定した場合はチェック処理にて下記のようなメッセージが表示され、オプションボタンが[更新]に自動的に変更される。問題なければ、そのまま[実行]をクリックすると、新しい内容に入替わる。
 フォーム2の場合、チェック終了後にデータがどの都道府県かを、下側に表示されている都道府県の該当の位置にチェックマークが付けられる。

既に都道府県のデータが登録されている場合のメッセージ

3 更新
 既に登録されている都道府県のデータを新しいデータと入替える場合の処理で、ファイルの選択から登録までの基本的な操作は[新規]と同じで、[実行]のクリックで下記の確認のメッセージが表示され、[はい(Y)]を選択した場合、新しい内容に入替わり、下記のような更新処理が終了した旨の確認メッセージが表示される。
 フォーム2の場合、チェック終了後にデータがどの都道府県かを、下側に表示されている都道府県の該当の位置にチェックマークが付けられる。

更新処理の実行確認メッセージ

更新処理終了の確認メッセージ

4 分割
 全ての都道府県または、複数の都道府県を含んだデータを、個々の都道府県のデータに分割したい場合の処理で(このようなデータをダウンロードしたが必要な都道府県だけを登録したい場合など。)、ファイルの選択から[実行]までの基本的な操作は[新規]と同じで、[参照]のチェックで複数の都道府県が含まれていないデータを指定した場合は、下記のようなエラーメッセージが表示されると共に、フォーム2の場合はそのデータに含まれている都道府県の位置にチェックマークガ付く。
 [実行]にてファイル分割が完了すると、下記の分割処理終了の確認メッセージが表示され、指定されたファイルと同じフォルダ内に、「新規」の[参照]の操作表示例で示すように、都道府県名が付加されたファイル(都道府県名.CSV)が作成される。

分割のチェックにおけるエラーメッセージ

分割処理終了の確認メッセージ


データベースファイル  [↑ページの先頭]

 作成されたデータベースファイル(郵便番号DB.mdb)は、
 ・都道府県
 ・市区町村
の2つのテーブルとテーブルに対するインデックが作成され、各テーブルとインデックスの内容は以下のようになっていますので、プログラムにて使用する場合はこの内容に基づいてデータを操作するように作成してください。
テーブル名 : 都道府県
フィールド名データ型データサイズその他
Uno テキスト型 重複なし
Adrs1 テキスト型 16重複なし
都道府県のインデックス
インデックス名フィールド名並べ替え順序
key1 Uno 昇順
Adrs1 昇順
uno   : 郵便番号の上位3桁
Adrs1 : 都道府県名
テーブル名 : 市区町村
フィールド名データ型データサイズその他
Uno テキスト型 重複あり
Adrs2 テキスト型 20重複あり
Adrs3 テキスト型 80重複あり
市区町村のインデックス
インデックス名フィールド名並べ替え順序
key2 Uno 昇順
key3 Uno 昇順
Adrs2 昇順
Adrs3 昇順
uno   : 郵便番号すべて7桁
Adrs2 : 市区町村名
Adrs3 : 町域名

使用例

・上位3桁の郵便番号にて、「都道府県名」のテーブルを参照し、該当の都道府県データが登録されているかをチェックします。

・登録されている場合は、フルの7桁で「市区町村」のテーブルを参照し、該当が1件だけの場合は、Adrs1、Adrs2、Adrs3と続けて合わせた内容を表示する。
複数ある場合は、Adrs3の「町域名」が複数となるので、Adrs1、Adrs2にAdrs3を加えた内容から選択できるようにする。

・「都道府県名」のテーブル参照は、インデックスを使った操作がベストです。

・「市区町村」のテーブル参照は、処理方法によってはSQL クエリを使ってください。