web-dev-qa-db-ja.com

Excel2010で動的カスケード検証リストのデフォルト値を設定する

データ検証とINDIRECT関数を使用して、Excelで動的なカスケードリストのセットを作成する方法をついに理解しました。しかし、私は問題にぶつかっています。

データ検証リストに変更が加えられるたびに、後続のすべてのリストがデフォルト値に設定されるようにスプレッドシートを設定したいと思います。例えば:

List1、List2、List3、およびList4があるとしましょう。各リストの値は、その前のリストで行われた選択によって異なります。スプレッドシートを開始するときに、すべてのリストをデフォルトで「すべて」にします。ユーザーがList1の値を選択すると、List2は一連の有効な選択肢で更新されます。 List2をこれらの選択肢の1つにデフォルト設定したいと思います。ただし、List2に正しい選択オプションのセットを入力させることはできますが、希望するデフォルト値を割り当てることができません。

同様に、ユーザーがList1、List2、およびList3で選択を行った後、戻ってList1を変更した場合、List2-List4をデフォルトで「ALL」に戻します。

どうすればよいですか?

11
Jay

この問題に使用する非VBAメソッドは、後続のセルにCONDITIONALフォーマットを適用して、保持している現在の値が現在のINDIRECT()参照範囲の値と一致するかどうかを確認することです。そうでない場合、セルは赤に変わるか、値が消える(フォント/背景に一致)ため、ユーザーはそのセルの値を更新/再選択する必要があることを認識します。

これ(および上記の他の人が言及したVBAメソッド)を説明するために、 ここにサンプルファイル があります。必要なファイルはDependentLists3.xlsです

1
Jerry Beaucaire