2013年5月18日土曜日

Excelでコンテキストメニューを実現する方法

Excelを使って他の人にデータを入力してもらうフォームを作成する時に、コンテキストメニューの形でリストメニューを表示できると入力に間違いが少なくなるのにと思うことがあります。つまり、左側のセルに入力したデータによって、入力するデータの選択肢となるリストの内容を変化させたいと思うことがあるのです。試行錯誤の末、1つのやり方がまとまったので、ここで紹介します。例として、地域名と県名を入力するExcelを用意しました。

選択肢となるリストを準備し、名前付きセルにする

今回の例ではまず地域の選択肢となるリストとして[第一階層]を、県の選択肢となるリストを3種類[東北]、[四国]、[九州]を準備します。準備ができたら、そのリストの選択肢部分を名前付きセルとします。

名前付きセルを設定するには[数式]タブの中の[名前の管理]ボタンをクリックします。

セルの名前はリストの名前と一致させるようにしてください。設定後のダイアログは以下のようになります。

データ入力規則でリストを表示するようにする

次に地域のデータを入力する部分の設定をします。まずデータ入力可能とする部分を選択します。

次にデータ入力の規則を設定しますが、これは[データ]タブから[データ入力規則]ボタンをクリックします。

[入力値の種類]を[リスト]にし、[元の値]を=第一階層とします。

これで名前付きセル「第一階層」の内容が選択肢として表示されるようになります。

左側のセルの内容により表示するリストを切り替えるためINDIRECTを使う

次に県名データを入力する部分の設定をします。今度はデータ入力可能とする部分のセルを1つだけ選択します。

次にデータ入力の規則を設定しますが、地域の時と同様に[データ]タブから[データ入力規則]ボタンをクリックします。[入力値の種類]を[リスト]にし、[元の値]を=INDIRECT(G4)とします。G4は選択したセルの左隣のセルになります。

名前付きセルとセル参照をうまく組み合わせるのがこのやり方のキモになります。設定が終了したらこのセルをコピーし、入力可能な他のエリアにペーストし完成です。

注意点

このやり方はExcel 2007とExcel 2010でしか確認していません。また、この例の地域部分に入力してから県名のデータを入力するという順番を前提にしています。県名の部分を先に入力することはできません。


0 件のコメント:

コメントを投稿