はじめに
お盆休みは、毎日どこかへ出かける人と、家で何かを直している人に分かれると思います。私は後者です。
休みのあいだ、自分のアドインの手入れを続けています。会話するだけでマクロが直る道具を作って以来、直すこと自体が速くなったので、休みが来るたびに手入れの範囲が広がっていきます。実装で手を動かすのは AI(Claude)で、何を作るか決めるのと、実物を確かめるのは私です。
今回は近況の報告です。短めに、二つだけ書きます。管理フォームが増えたことと、郵便番号まわりを作り直したことです。
TL;DR
- この休みで、アドインの管理フォームが一気に増えました。プリンタ、ユーザーフォーム自体、ワークシートの表示・非表示、フォントの一覧、PDF出力名──どれも「Excel の標準画面では管理しづらいもの」です
- 主役は郵便番号です。自作の郵便番号データ(12万4513件)を、住所のセルから一瞬で引けるようになりました
- 検索マクロは、4.51MB のデータブックを毎回開いて閉じる方式から、初回だけ読み込んでメモリに置く方式へ。二回目からはブックを開くことすらしません
- 検索シートには**「全国+47都道府県」のコンボ**を付けました。県を選んだ瞬間、表も検索もその県だけになります
- データの更新はボタン一発になりました。日本郵便の全国一括データ(2.04MB)を取得して、加工から書き込みまで全部やります。昔、県別に落として手で繋いでいた作業です
- 表に住所が並んでいるなら、範囲を選んで一発で、左隣のセルに郵便番号を埋めることもできます
管理フォームが、道具箱の棚になってきた
前に、ショートカットキーの一覧管理フォームを作った話を書きました。
あれから同じ型で、管理フォームが増えています。プリンタの管理。ユーザーフォームそのものの管理(一覧・コード閲覧・出し入れ)。ワークシートの管理には非表示シートの一覧と切り替えを足しました。隠れているシートは Excel の標準画面だと右クリックで一枚ずつしか出せませんが、状態の列を持った一覧で選んで反転するだけになりました。
普段の一覧は、表示中のシートだけを出します。
タブを「全シート」に切り替えると、隠れているものが状態つきで現れます。Sheet3 と Sheet4 が非表示、と一目で分かります。選んで下のボタンを押せば反転します。
共通しているのは、**「見えないものを一覧にして、見えるところで操作する」**という一点です。フォームを作るのは、会話で頼めば数分の作業になったので、「これも一覧で管理したい」と思った日のうちに棚が一段増えます。
郵便番号まわりを、作り直した
今回の主役です。
私は昔から、住所と郵便番号の対応表を Excel で持っています。日本郵便が公開しているデータを加工したもので、住所・郵便番号・ひらがなの読みが12万行並んでいる表です。検索欄に語を打ち込むと、その場で検索が走ります。機械が一件に決められれば即答え、決められなければ絞り込んだ一覧が出て、あとは人の目で選ぶ──という作りです。
この表自体は前から動いていました。今回やったのは三つです。
一つ目。県で絞れるようにした
検索欄の隣に**「全国+47都道府県」のコンボ**を付けました。県を選んだ瞬間に、表がその県だけになり、検索もその県の中だけで走ります。
仕掛けは単純です。この表の住所は必ず県名で始まるので、**「選んだ県名で始まる行だけを相手にする」**という条件を検索に一行足すだけで済みました。以前は「全国版」と「県内版」の二つのファイルを使い分けていましたが、これで一つに畳めました。
秋田県を選んで「山王」と打つと、こうなります。12万4513件のうち、候補は9件。
二つ目。データ更新をボタン一発にした
この対応表を作った当時は、日本郵便のサイトから県別の CSV を何回にも分けて落として、しかも長い町名だと一件が複数行に割れる仕様だったので、それを繋ぐ加工を手でやっていました。正直、二度とやりたくない作業でした。
今回調べ直したら、状況が変わっていました。**全国一括・1レコード1行・UTF-8 のデータ(2.04MB)が公式で配布されています。**分割も行割れも、もう存在しません。
なのでシートの右上に「更新」ボタンを付けました。押すと、取得→展開→住所の連結→読みのひらがな変換→表の書き換え→罫線まで全部やって、件数を報告してきます。実行したら 124,513件になりました(更新前は 124,236件。データは毎月更新されているので、この差の277件が「たまっていた分」です)。
三つ目。マクロの検索を、メモリ常駐にした
セルの住所から郵便番号を引くマクロは前からありました。ただ、作りが正直に言って重かった。4.51MB のデータブックを毎回開いて、検索して、閉じるという方式だったからです。
これを AI と直している途中で、私から注文を付けました。シートを開いて操作するのではなく、データを取り込んで、そちらで処理したほうが早いだろう、と。
作り直した結果はこうです。
- 初回だけデータを読み込んで、メモリに置く(Excel を閉じるまで有効)
- 二回目からは、データブックを開くことすらせずその場で答えが出る
- データが更新されたら、ファイルの更新日時で気づいて勝手に読み直す
さらにもう一本、**「選択セルの左側に郵便番号を入力」**というマクロを足しました。表に住所が並んでいるとき、範囲を選んで実行すると、機械が一件に決められた行だけ左隣に番号が入ります。決められなかった行と空欄は黙って飛ばすので、流れが止まりません。
この検索ブックは、公開しました
作り直した全国郵便のブックは、GitHub にそのまま置きました。開いて B1 に打てば検索、C1 で県絞り、右上のボタンでデータ更新まで、この記事に書いたことがそのまま動きます。
事実と見立ての仕分け
事実は、ここまで書いたとおりです。件数とファイルサイズは手元で実測した数字で、時間は測っていないので書いていません。「一瞬」というのは、毎回のブックの開け閉めが消えたあとの、私の体感です。
見立てを一つだけ。この郵便番号の道具は、大元のデータを検分できる形(ただの表)で持っていることが効いていると思っています。検索も更新もマクロですが、データそのものは開けば見える12万行の表です。おかしいと思ったら目で見て、手で直せる。速くする改造を重ねても、この検分のしやすさだけは崩さないようにしています。
正直な線引き
- 動作を確かめているのは、Windows 11・64bit Excel の私の環境一台です
- 住所から番号を機械が決めるのは「一件に絞り込めたとき」だけです。書き方が揺れている住所や、番地の途中までしか無い住所は、絞り込んだ一覧を出して人の目に渡します。全自動をうたう道具ではありません
- 郵便番号データは日本郵便の公開データです。毎月更新されるので、更新ボタンを押した日の鮮度がその表の鮮度です
おわりに
休みの前半だけで、棚が何段か増えて、郵便番号は見違えました。
道具の手入れは、掃除と似ています。やり始めると、隣の汚れが目に入る。
休みの残りも、たぶんそうやって過ぎていきます。


