見出し画像

テーブル参照で動的なリストを作る

こんばんは
現在職場のDXの一環で、既存のExcelブックにVBAをガリガリ書いています
正直、ExcelVBAは苦手で・・・(まだAccessVBAの方が書ける)
実際に使用する人達が関数もVBAも知識なし!と言う状況のため、

  • 手入力は最小限に

  • 関数やVBAのメンテナンスをユーザーが気にしなくていい

  • フォーマットの変更に柔軟に対応

以上をコンセプトに、「メンテナンス不要」を目指して製作中です

今回は、入力規則のリストの値を動的に参照する方法をご紹介します



入力規則でテーブルを選択してみる

Mac版Excelの入力規則はここにあります

メニューバー「データ」タブ内→入力規則

普通に「データタブ」の「入力規則」でテーブル範囲を選択しても、テーブル名ではなく、セル参照されてしまいます
※リストにする値は別シート「CONFIG」で、「STORE」と言う名前でテーブル化済み

テーブル範囲を選択した状態

これではせっかくのテーブル化が台無しなので、
以下の手順でテーブル範囲として参照させます

入力規則にINDIRECTを使って直接入力

「元の値」に以下のように直接入力します

=INDIRECT("テーブル名[見出し]")

今回参照させるテーブル名は「STORE」、見出しも「STORE」なので、

=INDIRECT("STORE[STORE]")

と入力し、「OK」をクリックします。

「元の値」に直接入力

これで、リスト項目の増減があってもメンテナンスは不要
フォーマット変更でテーブルの位置を動かしても影響ありません

カラムの値を動的に取得可能

先日、「リストで選べる値を追加して欲しい」と言われまして、
「あ、そこからなんだ〜」と
テーブルの使い方からレクチャーして、自分でリスト項目を修正できるようになっていただきました


いいなと思ったら応援しよう!