この度は、本ソフトウェアをご使用して頂き、ありがとうございます。 '---------------------------------------------------------------------- 【ソ フ ト名】 郵便番号・住所変換アドイン 【バージョン】 1.01x 【ソフト種別】 フリーソフト 【動作可能OS】 Windows 95/98/ME/NT/2000/XP 【必要なもの】 Excel2000〜2003,VB6.0ランタイム,MADC2.8,JETENGINE3.6 【開発 言語】 Excel VBA 【掲 載 日】 2006/09/20 【著 作 権】 Copyright (C) WinArrow 【U R L】 -- 【電子メール】 WinArrow@mhl.janis.or.jp '---------------------------------------------------------------------- ★ソフト紹介  郵便番号から住所、または、住所から郵便番号を取得するアドインソフトです。 【機能概要】 ┌───────┬───────────┬────────────┐  │       │ユーザー定義関数   │一括処理        │  ├───────┼───────────┼────────────┤  │郵便番号→住所│=ZIP2ADR or {=ZIP2ARY}│郵便番号→住所一括変換 │  ├───────┼───────────┼────────────┤  │住所→郵便番号│−          │住所→郵便番号*1    │  ├───────┼───────────┼────────────┤  │市町村一覧  │−          │市町村一覧表取得    │  ├───────┼───────────┼────────────┤  │住所項目分割 │{=CityTownSEP}    │−           │  └───────┴───────────┴────────────┘   ※{}関数は、配列関数を意味します。*1:対話型処理となっています。  ○郵便番号から住所を取得する。   ・「ユーザー定義関数」と「一括処理」の両方の使い方ができます。   ・住所項目を分割して取り出すことができます。    →住所項目(都道府県名、市区町村名、町域名,[丁目番地等][事業所名])     ※[]内は、事業所個別郵便番号を指定した場合   ・住所の他に都道府県コード、市町村コードの取得もできます。   《ユーザー定義関数》    ・ZIP2ADR : 郵便番号を指定して住所を取得する関数です。    ・ZIP2ARY : 郵便番号を指定して住所項目を分割して取得する配列関数です。   《一括処理》    ・郵便番号→住所一括変換:郵便番号のセル範囲を指定して住所を取得するコマンドです。  ○住所から郵便番号を取得する。(対話型処理)   ・検索するキーとなる住所には、漢字、読みが指定できます。   ・また、事業所個別郵便番号対応の場合は、事業所名(漢字、読み)が指定できます。   ・また、市町村コードを指定することもできます。   《一括処理》 ・住所→郵便番号:住所のセル範囲を指定して郵便番号を取得するコマンドです。  ○その他の機能   《ユーザー定義関数》 ・CityTownSEP:都道府県名+市区町村名を「都道府県」「市・郡・島」「区・町・村」に       分割する配列関数です。   《一括処理》 ・市区町村一覧作成:市町村名一覧を作成するコマンドです。 ★インストール方法   xlszipadres.lzhには、次のファイルが入っています。       ・xlzipaddress.xla ----- アドインファイル(本体)です。    ・myzipdic.lzh --------- 郵便番号データベース作成プログラムです。解凍してください。    ・郵便番号db.txt ------- 郵便番号データベースの説明書です。    ・readme.txt ----------- 本ファイルです。    ・xlzipaddress.chm ----- 住所検索時の注意点 [1] xlzipaddress.lzhを解凍し、各々のファイルを次のようにそれぞれのフォルダに移してください。 xlzipaddress.xla・・・・アドインフォルダへ アドインフォルダについては、「アドインのすすめ」を参照ください。    http://www.mhl.janis.or.jp/~winarrow/psoft/susume/addinsusume.html から、「アドインのすすめ」をダウンロードしてください。 myzipdic.lzh・・・・解凍後、任意のフォルダへ myzipdic.jpg・・・・myzipdic.mdbと同じフォルダへ readme.txt・・・・・任意のフォルダへ xlzipaddress.chm・・マイドキュメントへ  ※xlzipaddress.xlaはアドインプログラムです。次の方法でセットアップしてください。   EXCELを起動→[ツール]→[アドイン]→[郵便番号・住所変換アドイン]にチェックをつけ、 [OK]をクリックします。   Excelに組み込まれるとメニューバーに「郵住変換(Y)」が表示されます。 [2] 郵便データのセットアップ方法(毎月実行する作業) myzipdic.lzhを解凍して、Readme.txtを参照し「郵便番号データベース」を作成し、   郵便番号データを取り込んでください。 同梱の「郵便番号DB.txt」を参照してください。 ★アンインストール方法 [1] EXCELのアドイン設定の削除、xlzipaddress.xlaのファイルの削除を行います。 ★使用方法 【ユーザー定義関数】としての使い方    ○ZIP2ADR関数   住所を格納したいセルに次のように関数を入力します。 =ZIP2ADR(郵便番号,変換オプション)   変換オプション:ユーザ定義関数の出力形式を指定します。        "A":区切り文字なし        "B":区切り文字あり(標準の使い方) "C":都道府県コード(JIS X 0401) "D":市町村コード(JIS X 0402) "1":都道府県名のみ出力 "01":市町村名のみ出力 "001":町域名のみ出力 "0001":丁目番地等のみ出力(但し、個別郵便番号データの場合) "00001":事業所名のみ出力(但し、個別郵便番号データの場合) "11":都道府県名と市町村名を区切り文字なしで結合して出力 "111":都道府県名〜町域名を区切り文字なしで結合して出力 "1111":都道府県名〜丁目番地等を区切り文字なしで結合して出力 "0111":市町村名以下を区切り文字なしで結合して出力 ふりがなオプションを指定する場合は、上記の変換オプションの文字に":H"または":K"を指定します。       例. =ZIP2ADR(A1,"A:H") ":H" : 「漢字の住所項目:ふりがな」の形式で出力されます。      ":K" : 「ふりなが」だけが出力されます。               ふりがなも漢字の住所項目と同様に項目間に"+"の区切り文字が入ります。        なお、ふりがなは、半角カタカナで表示されますので、全角に変換したい場合は        =JIS(ZIP2ADR(A1,"A:H")) のように数式を入力してください。      また、変換オプション文字列をセルで指定することも可能です。        例.=ZIP2ADR(A5,$B$1) <------予めセルB1に"A:H"を入力しておきます。   @全国版郵便番号データ 例1: =ZIP2ADR(A2,"B")・・・・都道府県名〜町域名の項目間に"+"区切り文字あり 例2: =ZIP2ADR(A2,"A")・・・・都道府県名〜町域名の項目間に"+"区切り文字なし 例3: =ZIP2ADR(A2,"B:H")・・・都道府県名〜町域名の項目間に"+"区切り文字あり":"フリガナ 例4: =ZIP2ADR(A2,"A:H")・・・都道府県名〜町域名の項目間に"+"区切り文字なし":"フリガナ   A事業所個別郵便番号データ 例1: =ZIP2ADR(A2,"B")・・・・都道府県名〜事業所名項目間に"+"区切り文字あり 例2: =ZIP2ADR(A2,"A")・・・・都道府県名〜丁目番地等の項目間に"+"区切り文字なし                  但し、事業所名との間には、"+"区切り文字あり 例3: =ZIP2ADR(A2,"B:H")・・・都道府県名〜事業所名項目間に"+"区切り文字あり":"フリガナ 例4: =ZIP2ADR(A2,"A:H")・・・都道府県名〜丁目番地等の項目間に"+"区切り文字なし":"フリガナ                  但し、事業所名との間には、"+"区切り文字あり A2:郵便番号は入っているセルのアドレス ※郵便番号は7桁形式で入力されていること。 (000-0000形式でも0000000形式でも可)   戻り値:例1の場合は、住所項目間には、区切り文字("+")が入っています。 (区切り操作ができるようになっています。) 例2の場合は、各住所項目は結合されています。       例3の場合は、例1の後ろに":"に続けて「ふりがな」が半角カタカナで追加されます。       (区切り操作する場合は、最初に":"で分割してください)       例4の場合は、例2の後ろに":"に続けて「ふりがな」が半角カタカナで追加されます。   @一般郵便番号データの場合 (例1) 北海道+札幌市中央区+北七条西 (例2) 北海道札幌市中央区北七条西 「ふりがな」を指定した場合 (例3) 北海道+札幌市中央区+北七条西:ホッカイドウ+サッポロシチュウオウク+キタシチジョウニシ (例4) 北海道札幌市中央区北七条西:ホッカイドウサッポロシチュウオウクキタシチジョウニシ   A事業所個別郵便番号データの場合 (例1) 北海道+札幌市北区+北二十九条西+2丁目1番1号+学校法人 創成学園 (例2) 北海道札幌市北区北二十九条西2丁目1番1号+学校法人 創成学園 「ふりがな」を指定した場合 (例3) 北海道+札幌市北区+北二十九条西+2丁目1番1号+学校法人 創成学園:ホッカイドウ+サッポロシキタク+++ガツコウホウジン ソウセイガクエン (例4) 北海道札幌市北区北二十九条西2丁目1番1号+学校法人 創成学園:ホッカイドウサッポロシキタク+ガツコウホウジン ソウセイガクエン   ※第3項目が「以下に掲載がない場合」と表示される場合は、手修正が必要です。 ※郵便番号がアンマッチの場合は、「#N/A」がかえります。   ※一つの郵便番号で複数の住所が存在する場合は、表示されるダイアログの中から 該当するものを選択してください。 ※通常、ユーザー定義関数は、参照値が変更された場合、自動再計算するように    作成しますが、本プログラムは、自動的には再計算を行いません。 手動で再計算を行ってください。   ※「区切り位置」で分割する場合は、関数を「値」に変換してから実行してください。   <<参考>>「区切り位置」以外で分割する方法の例    セルB1に=ZIP2ADR(A1,"A:H") セルC1に漢字部分    =LEFT(B1,FIND(":",B1)-1)    セルD1にふりがな部分  =MID(B1,LEN(C1)+2,LEN(B1)-LEN(C1))   ※変換された住所は、必ずしもそのまま使える形の住所となっていない場合があります。      例。「以下に掲載がない場合」や「(1〜400番地)」のような表現があり得ます。     →意図した住所でない場合は、関数を値に変換した後で、手修正してください。 ※シート上にこのユーザ関数以外の関数や計算式が存在して、手動で再計算する    場合、このユーザ関数も再計算の対象となります。 一つの郵便番号に複数の住所が存在する場合は、選択のためのダイアログが開きます。   ※このユーザー関数は、入力の手間を省くのみに使用し、関数を残さず、極力「値」に    変換するようお願いします。   ※都道府県コード、市町村コードについて   (a)都道府県コード(JIS X 401) :の2桁の数字コード(01〜47)が、出力されます。   (b)市町村コード(JIS X 402):の5桁の数字コード が、出力されます。    データの並べ替えをする場合に重宝すると思います。   ※住所の前に"★"がついていた場合は、当該郵便番号に対する住所が変わっているにも    拘わらず、データがメンテナンスされていないことを示すものです。     (事業所個別郵便番号の場合)  ○ZIP2ARY関数 住所項目を複数以上取得する配列関数です。    {=ZIP2ARY("100-0011")} 例、セルA2に郵便番号があった場合、      セルB2〜D2を選択し、      =ZIP2ARY(A2) を入力し、[Ctr:]+[Shift]+[Enter] を押します。      セルB2に都道府県名、セルC2に市町村名、セルD2:町域名が返ります。 読み項目を取得する場合     {=ZIP2ARY(A2,"K")} "K"は、読み(かな)の取得の指示です。     ※関数入力の前にセルを選択しますが、横に最大5個のセルが選択可能です。      少なければ選択したセルだけに入ります。      左から、       「都道府県名」       「市町村名」       「町域名」       「丁目番地等」:事業所個別のみ       「事業所名」:事業所個別のみ  ○CityTownSEP関数 都道府県名〜市区町村名を「都道府県名」「市・郡・島」「区・町・村」に   分割する配列関数です。 {=CityTownSEP(A2)}   例.セルA2に都道府県名〜市区町村名が入力されています。     セルB2〜D2を選択し、 =CityTonSEP(A2)を入力し、[Ctr:]+[Shift]+[Enter] を押します。 セルB2に「都道府県名」セルC2に「市名or郡名or島名」、 セルD2に「区名or町名or村名」が返ります。 【一括処理】としての使い方  ○郵便番号→住所一括変換    @メニューバーの「郵住変換」−「郵便番号→住所一括変換」を     クリックしてください。    A次に表示されるダイアログで、郵便番号のセル範囲、住所格納セルの列を選択入力します。     ※▼をクリックして各々対象のセル範囲をクリックします。     ※@実行前に郵便番号のセル範囲を選択しておくと、セル範囲が表示されます。 B変換方法を選択して、[実行]ボタンをクリックします。    Cエラーがあった場合の住所セルの内容     #ERROR・・・・・・郵便番号が異常("000-0000"形式、"0000000"形式以外) #N/A ・・・・・・郵便番号がデータベースに登録されていない。 #DOUBLE_2 ・・・・複数の住所データが存在する郵便番号。              最後の数値は、重複している住所の個数です。              (例:2は2つの住所があるということです。)              →手作業(ユーザー定義関数方式)で該当する住所を選択してください。    ※変換された住所項目には、一部を除き、「ふりがな」が設定されています。     別セルに「PHONETIC関数」でふりがなを取り出すことができます。     なお、事業所個別データでは、「ふりなが」が設定されない項目もあります。    ※変換された住所は、必ずしもそのまま使える形の住所となっていない場合があります。      例。「以下に掲載がない場合」や「(1〜400番地)」のような表現があり得ます。     意図した住所でない場合は、手作業で修正してください。  ※「ユーザー定義関数のZIP2ADR」と「一括処理の郵便番号→住所一括変換」を併用すると、     動作不具合になる可能性があるので避けてください。    ※住所の前に"★"がついていた場合は、当該郵便番号に対する住所が変わっているにも     拘わらず、データがメンテナンスされていないことを示すものです。     (事業所個別郵便番号の場合)  ○市町村一覧表取得   市町村名の一覧を取得するコマンドです。   次の項目が取得されます。 「市町村コード」 「都道府県名」 「市町村名」 「都道府県名よみ」 「市町村名よみ」です・    ※「よみ」は半角カタカナです。   呼出し方: データを格納したいシートをアクティブにして、     メニューバーの「郵住変換」−「市町村一覧表作成」を     クリックしてください。  ○住所→郵便番号   本機能は、住所等を検索キーとして「郵便番号データベース」から  郵便番号を取得する処理です。   「住所」は、英数字をコード化した郵便番号や顧客コードなどとは違い、  合併や住所表示適用化などに伴い変ることがあり、ある意味「あいまい文字列」  の集まりです。   そのため、対象データを選択してボタンをクリックすれば、全件処理できる  ような自動処理ではなく、1件毎に確認を要する対話型の処理になっています。   住所そのものがあいまいな文字列ということで、「住所(漢字)」「住所(読み)」  「事業所名(漢字)」「事業所名(読み)」「市町村コード」を検索キーとして指定  できるようにしてあります。   検索キー値は、セル範囲を選択指定、または、ダイアログ直接入力指定のどちら  かの方法になります。   セル範囲の選択指定は、住所項目が分割されていた場合でも可能です。   勿論、どちらの方法でも"*"を使って「あいまい検索指定」が可能です。   ("*","*"どちらも可)   郵便番号のみの取得に加えて、同時に住所も取得することができます。   住所格納セルを現在のセルに指定した場合は、無条件で上書きされます。   (合併などで住所も置き換えたい場合に便利な機能です。)     なお、事業所個別郵便番号のデータは、メンテナンスタイミングの遅れなどで  合併前の住所が検索されることがあります。その場合は、都道府県名の前に"★"印  がついて取得されます。   当該事業所の担当者が忘れていることもありますので、当該事業所にご連絡  いただくよう希望します。   検索キーに住所を指定する場合には、「郵便番号データベース」の住所データの  持ち方を理解する必要があります。   詳細は、メニューバーの「郵住変換」−「住所検索時の注意点」を参照してください。   適当な文字列を指定して検索した場合、ヒットしないこともあり得ます。   ヒットしない場合は、合併などで「市名」や「町域名」が漢字からひらがなに  変わっていることもありえますから、諦めずにキー値を変更して再検索することも  必要です。     ◎住所をキー値として指定可能なパターン   ○○○:都道府県名   □□□:区名、市名、市区名、郡名   △△△:町域名、大字(おおあざ)名、   ×××:字(こあざ)名、   ◆◆◆:地番   _  :スペース   例0 ○○○□□□△△△   例1 ○○○□□□△△△●−■−▲   例2 ○○○□□□△△△●丁目■番▲号   例3 ○○○□□□△△△●丁目−■−▲   例4 ○○○□□□大字△△△◆◆◆番地   例5 ○○○□□□△△△◆◆◆番地   例6 ○○○□□□大字△△△_◆◆◆   例7 ○○○□□□△△△_◆◆◆   例8 ○○○□□□大字△△△_×××   例9 ○○○□□□△△△_×××   ※住所項目が複数のセルに分割されている場合は、文字列結合した状態で判断します。   ※途中に"*"(アスタリスク)を挿入して、あいまい検索指定も可能です。   ※住所項目を省略した指定も可能です。(検索結果が多くなるだけです)   ※プログラムでは、町域名までを実際のキーとして扱っています。    →実際には、最初のスペースが現れるまで)    (例2〜5は、スペースが無くてもスペースがあるものと判断しています)   ※"大字"という文字は、"*"に変換されて検索されますので、意図したものより    多く表示されることがあります。   ※検索結果の件数をお知らせします。    件数過多の場合は、キー値を修正後、絞込み再検索が可能です。   ※検索キー値に町域名より右の部分が入力されていた場合は、データベースから    取得した住所と結合してセルに格納します。(住所を取得指定した場合)  呼出方   @住所の格納されているセル範囲を選択して、    メニューバーの「郵住変換」−「住所→郵便番号」を    クリックしてください。    住所項目が分割されている場合は、分割されているセルを選択することができます。   Aダイアログで「郵便番号」を格納するセルを選択指定してください。    郵便番号と住所を同時に変更する場合は、左側セル:郵便番号、右側セル:住所と    連続した2つのセルを選択してください。    この場合、既存の住所は上書きされます。   B基本的に「あいまい検索」処理となっていますので、複数件ヒットした場合は、    一覧表から該当する郵便番号を選択してください。(ヒット件数が表示されます)   ※@で空白のセルを選択した場合は、ダイアログの検索値欄に任意の住所を入力し    新しく郵便番号〜住所のリストを作成することができます。 ★その他の参考情報   ※Microsoft社提供の住所変換ソフトは、郵便番号データ変更があってもタイムリーに    リリースできていません。   ※「郵便番号変換ウィザード」「IME住所辞書」などを使用する場合は、何時時点の    郵便番号データが反映されているか確認することが大切です。   ※IME住所辞書には、事業所個別郵便番号対応のデータは登録されていません。 ★動作確認 ●EXCEL2000版で動作確認しています。 -------------------------------------------------------------------------- ★[注意事項] ●このソフトを使用した結果については、当方は一切の責任、保証は致しません。 ●このことに同意した上で、ご使用下さい。 ●マクロソースにはパスワード保護されています。(含む、ACCESSMDB)  ※【Office2007β版(Excel2007,Access2007,Outlook2007など)への対応について】   Office2007は、メニュー&ツールバーの扱い方が現行からの大幅に変更されています。   そのため、本ページで公開しているソフトの殆どは、正しく動作しないと思われます。   特に、メニュー操作を行なっているソフトは、起動時にエラーとなる可能性があります。   作者PCでは、当面Office2007のβ版/正規版 ともに実行できる環境にはありませんので、   ここに掲載のソフトをOffcei2007版で実行した場合、どのようになるという検証ができません。   したがいまして、Offcie2007はサポート対象外とさせていただきますので、ご了承をお願いします。   (お問い合わせ頂いても回答できません) ------------------------------------------------------------------------- ★[告知]  ・本ソフトは、「郵便番号(7桁)から住所を検索する関数[=myzip()]」をリニューアルした   ソフトです。機能追加により、従来のソフト名がふさわしくないのでソフト名を変更しました。  ・本ソフトリリースに伴い、「郵便番号(7桁)から住所を検索する関数[=myzip()]」を廃版と   致します。  ・「郵便番号(7桁)から住所を検索する関数[=myzip()]」ご利用の皆様には、お手数を   お掛けしますが、旧版をアンインストールして、本ソフトをインストールしていただくよう   お願いいたします。  ・旧版のユーザー定義関数名が変更になっています。(MYZIP → ZIP2ADR)  ・一括変換機能を利用する場合、旧版では、利用するブックに「参照設定」するように   なっていましたが、本ソフトでは「参照設定」の必要はあありません。   また、旧版では、利用するブックにマクロを記述して「一括変換」プロシジャを呼ぶように   なっていましたが、アドインでコマンドを用意しましたので、当該マクロは不要です。  ・AccesMDBは、テーブル項目が追加となっていますので、旧版のMDBファイルは   そのまま利用できません。   (理由:事業所個別郵便番号データがタイムリーにメンテナンスできていないデータを    多く発見したので、その対応処理を追加したためです。)  ・旧版に比べて追加された機能   住所から郵便番号を取得する機能   住所を「市」と「区」、「郡」と「町村」に分割する配列関数を追加   事業所個別郵便番号のメンテナンス不備対処処理(住所の先頭に★を追加する処理)    ・V1.010以降、Accessを必須ソフトから除外しました。 ------------------------------------------------------------------------- ★[著作権] ●このソフトはフリーソフトですが、著作権は、WinArrowにあります。  雑誌、ホームページ等に掲載する場合は、ご一報をお願いいたします。   Copyright(c) 2006 WinArrow All Rights Reserved. ------------------------------------------------------------------------- ★[連絡先] ●ご意見ご要望は次のメールアドレスまでお願い致します。   mailto:WinArrow@mhl.janis.or.jp ★履歴 ==== 2006.09.20 V1.000 初版リリース 2007.01.10 V1.010 Access2000を必須ソフトから除外しました。  郵便番号データベースの共有化を前提にして。データベース作成処理を変更しました。          同時に、排他制御関係を見直しました。