キャロルは、2番目のドロップダウンリストが最初のドロップダウンリストで行われた選択に依存するように、Excelにドロップダウンリストを作成する方法があるかどうか尋ねました。

実際には、単純な数式から複雑なマクロまで、このタスクを実行するためのさまざまな方法があります。選択する方法は、最も直接的には、作成するドロップダウンリストのタイプによって異なります。 Excelで作成できるドロップダウンリストには、実際には3つのタイプがあります。

検証リスト。*特定のセルへの入力を制限する場合は、ドロップダウン検証リストを作成できます。

フォームリスト。*フォームツールバー([表示] | [ツールバー] | [フォーム])を使用して、ドロップダウンリストを作成できます。これらは、保護されたExcelフォームを作成する場合に最適です。

Userforms . *これらは、VBAエディターで作成されたダイアログボックスです。ユーザーフォームをマクロから呼び出すことで「実行」します。これは、ユーザーが見るものに最大の自由度を与えるため、最も用途の広いユーザーインターフェイスです。 (作成するには、Excelの高度な知識も必要です。)

これらのタイプのドロップダウンリストのそれぞれに基づいて依存ドロップリストを作成する方法について説明するのではなく、ほとんどの人にとって十分である最も簡単な方法を検討することにします。データ検証リストと一緒にINDIRECT関数を使用すると、必要な結果を簡単に取得できます。

。ブックの空白のワークシートで、最初のドロップダウンリストに含まれるアイテムのリストを作成します。たとえば、営業、研究、エグゼクティブ、生産など、社内の部門のリストを作成します(これらはリスト内の1語のエントリである必要があります)

。手順1で作成したアイテムのリストを選択し、「Departments」などの名前を使用して範囲に名前を付けます。

。同じワークシートで、セカンダリドロップダウンリストに表示される可能性のあるアイテムのリストを作成します。手順1で作成したリストのエントリごとに1つのリストが必要です。たとえば、営業担当者のリスト、研究者のリストなどを作成できます。

。リストごとに、手順3で作成したリストを選択します。各リストに、手順1のリストで使用した名前(営業、研究、エグゼクティブなど)と一致する1語の名前を付けます。

。ドロップダウンリストを表示するワークシートに切り替えます。

。ユーザーが最初のリスト(手順1で作成したもの)からアイテムを入力できるセルを選択します。

。 [データ]メニューから[検証]を選択します。 Excelに[データ検証]ダイアログボックスが表示されます。 (図1を参照)

。 [許可]ドロップダウンリストを使用して、[リスト]を選択します。

。 [ソース]ボックスに、等号に続けて手順2で作成した名前を入力します。たとえば、= Departmentsです。

。 [OK]をクリックします。これで、最初のリストの情報のみを手順6で選択したセルに入力できるように指定しました。

。ユーザーが依存リストから項目を入力できるようにするセルを選択します。たとえば、手順6で選択したセルのすぐ右側のセルを選択します。

。 [データ]メニューから[検証]を選択します。 Excelに[データ検証]ダイアログボックスが表示されます。

。 [許可]ドロップダウンリストを使用して、[リスト]を選択します。

。 [ソース]ボックスに、INDIRECT関数を使用する式を入力します。手順11で選択した範囲の最初のセルがセルB3であり、その最初のセルをセルA3で選択したものに依存させる場合は、次の数式を使用します。

。 [OK]をクリックします。

それでおしまい。これで、手順6で指定したセルの1つを使用している場合にのみメジャーリストから選択でき、手順11でセルの1つを選択した場合に適切な従属リストから選択できます。

このアプローチにはさまざまなバリエーションがあります(データ検証を使用)。これらのアプローチの詳細については、次のWebページにアクセスしてください。

http://www.ozgrid.com/download/ (download the MatchingLists.zip file)

http://www.contextures.com/xlDataVal02.html

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2972)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。