MS Access Tips/Sample and VBA and Blog customize etc...

電話番号の適切な位置に区切り文字を挿入する関数+市外局番データ自動アップデイトツール

タイトル画像

以前、電話番号に区切り文字を挿入する関数を紹介しました。総務省の市外局番一覧を元に、電話番号を分割しています。その市外局番一覧が更新されていました。その一覧(Wordファイル)から市外局番データの定数コードを生成する関数は作成済みなので、それで生成したコードでプログの記事を更新すればいいだけなのだか、どうせなら、それを市外局番データ自動アップデイトツールとして公開しようと思い立ちました。

概要

関数自体は下記で紹介済みのものです。

区切りなしの電話番号に適切な位置に区切り文字を挿入する関数(汎用版) - hatena chips

ハイフン無しで数字のみ入力されている電話番号の適切な位置にハイフン(変更可能)を挿入するものです。

上記は、平成28年5月27日現在の市外局番データを元にしてますが、今回、下記にアクセスしたら、

総務省|電気通信番号の利用・指定|市外局番の一覧

平成29年4月26日現在に更新されていました。

そこで、上記サイトへアクセスして更新日付を取得し、コード内の市外局番データの更新日付と比較して、新しくなっていたら、一覧(Wordファイル)をダウンロードして、そこから市外局番データを取り込んで、コードを更新するというのをすべて自動でするツールをExcelで作成しました。

更新したコードは「クリップボードにコピー」するか「BASファイルとして出力」できます。

市外局番データ更新ツールの使い方

下記のリンク先からエクセルファイルをダウンロードします。

ImportAreacode.xlsm (Excel マクロ有効ブック - 47kb)

このファイルを開くと下記のユーザーフォームが表示されます。

更新ツールフォーム

画像を見てもらえば説明しなくても分かると思いますが、一応解説します。

「平成29年4月26日現在」というのは、コード中の電話番号データの更新日です。
[市外局番データの更新をチェックする]をクリックすると総務省のページにアクセスして市外局番データの更新日付を取得して、コードの更新日付と比較して新しければ、コードを更新するかメッセージを出します。[はい]をクリックすると局番一覧のワードファイルをダウンロードしてそこのテーブルを読み込んで、コードに変換します。変換したコードはSheet1に格納されます(非表示になってますが)。

この生成された関数を利用するには、2つの方法があります。

[コードをクリップボードへコピー]をクリックして、関数を使用したいワークブックを開いて、標準モジュールに貼り付けます。すでに古いバージョンのコードがある場合は上書きコピーします。

[BASファイル作成する]をクリックします。保存するフォルダーを聞いてきますので選択して、[保存]をクリックします。関数を使用したいワークブックを開いてVBEを開き、メニュー[保存]-[インポート]をクリックして、先ほど保存したBASファイルを選択します。[開く]をクリックすると標準モジュールにmodSplitAreacodeというモジュールが作成されます。
旧バージョンのモジュールがある場合は、事前に開放しておく必要があります。

使用例

[サンプルフォーム]をクリックすると、ユーザーフォームでの使用例のサンプルが開きます。

電話番号分割テストサンプルフォーム

「電話番号」テキストボックスで数字のみで電話番号を入力して、Enterキー等でフォーカス移動すると、適切な位置にハイフンが挿入されます。
テキストボックスのExitイベントのコードは下記になります。

※フォームのデザインは下記のものをパクリ参考にさせていただきました。

VBA 見栄えの良いユーザーフォームを作るコツ - t-hom’s diary

Leave a reply






Trackbacks

trackback URL
https://hatenachips.blog.fc2.com/tb.php/513-5dd9946a
該当の記事は見つかりませんでした。