自治体名を入力しやすくするマスタシートと入力制限の方法

平成の大合併で市町村合併が進み,自治体数は減少してきましたがそれでも現在1,800弱の自治体があります。(47都道府県+1,718市町村)
業務用の何らかのワークシートを作成する場合,自治体名称を入力する欄を設ける場面があると思います。その場合,以下のような課題が考えられます。

  • 後で集計するため,正しい自治体名称を入力させたい。
  • ユーザーの手間や入力ミスを減らしたい。


このため,次のような工夫をすべきと考えられます。

  • あらかじめ用意した自治体名称データをドロップダウンリストから選択させる。
  • 約1,800個のドロップダウンリストから探して選択するのは面倒なので,最初に47都道府県を選択し,その都道府県に含まれる市区町村名のみを選択できるようにする。

アップデート

ページ最後の有償配布版を最新版に更新しました。前バージョン(2014/4/5)と比較し、新バージョン(2016/10/10)では、宮城県富谷町が富谷市に格上げとなっています。

ドロップダウンリスト専用マスタシートの作成

新しいシートを作成して,まず都道府県名の一覧を作成します。作成するときは適当に検索してコピー&ペーストします。都道府県名は都道府県コード順に縦に並べます。(このページがコピペしやすいと思います。)

コピペした都道府県名の範囲に「都道府県」と名前をつけます。この場合はセルB2〜B48を選択して,数式バーの左側の部分に入力します。

次に各都道府県の市区町村名を用意します。市区町村名は総務省のこのページから「全国地方公共団体コード」の最新版のExcelファイルをダウンロードします。
このファイルから,都道府県と市区町村名の列をコピー&ペーストします。
localgov
ここから,手作業になりますが,各都道府県の市区町村を選択し,その範囲にそれぞれの都道府県の名前をつけます。例えば北海道はセルE3〜E181を選択し,「北海道」と名前をつけます。これを沖縄まで繰り返します。
localgov2
この部分をVBAで作成することも考えられますが,1回のみの作業なのでマクロを作るよりは手作業で十分と思います。

入力欄を設けて入力制限を施す

項目名称や罫線などで入力欄を整えます。以下の例では橋梁の所在地の入力例として,都道府県名,市区町村名,町名の欄を設けます。このうち,都道府県名と市区町村名はドロップダウンリストで入力させ,町名は自由入力させることとします。
inputrange4
都道府県の部分に入力制限を設定するため,都道府県入力欄の範囲を選択します。
inputrange2
「データ」リボンから「データの入力制限」を選択し,この範囲に入力制限を設定します。
先ほど名前をつけた「都道府県」の範囲をリストとして設定します。
inputlimit
次に市区町村入力欄の範囲を選択します。
inputrange3
市区町村入力欄は,選択した都道府県に応じてリストの範囲を変えるようにする必要がありますが,それはINDIRECT関数で可能です。この場合,都道府県名のセルはF6であるため,I6セルのデータの入力制限を,リストで’=INDIRECT(F6)’と設定します。このように設定することによって,例えばF6の値が北海道となっている場合,市区町村名は’北海道’という名前の範囲をリスト化します。
inputlimit2
次のようなエラーが出てもそのままOKをクリックします。
inputlimiterror
これは,F6にデータが入っていない場合,INDIRECT関数で参照する範囲の名前がないためです。
複数の範囲をまとめてINDIRECTで指定しても相対的な位置で設定されます。図の場合では2段目のI8セルは’=INDIRECT(F8)’と設定されます。

入力制限の完成

これで入力制限が完成しました。下図のように,東京都を選択した場合,東京都の市区町村のみがドロップダウンリストから選択できるようになります。
localgov3
後は,これらの設定を崩されないように,入力用シートに保護をかけたり,マスタシートを非表示にしたりしてやれば良いでしょう。

ダウンロード

上記の手順でマスターシートを作成することができます。
自分で作るのは面倒、という方向けに完成版をGumroadで有償配布しています。
自治体のデータは最新版の2016年10月10日版としています。

※ここにGumroadのウィジェットを表示していますが、企業・学校などでフィルタリングにより表示されない場合があります。

関連記事