Excel 2010 で動的なカスケード検証リストの既定値を設定する

Excel 2010 で動的なカスケード検証リストの既定値を設定する

ようやく、データの入力規則と INDIRECT 関数を使用して、Excel で動的なカスケード リスト セットを作成する方法がわかりました。ただし、問題が発生しています。

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

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

同様に、ユーザーが List1、List2、List3 で選択を行い、戻って List1 を変更した場合、List2 ~ List4 はデフォルトで「すべて」に戻るようにしたいと思います。

どうすればいいですか?

答え1

この問題に対して私が採用している非 VBA の方法は、後続のセルに条件付き書式を適用して、保持されている現在の値が現在の INDIRECT() 参照範囲の値と一致するかどうかをチェックすることです。一致しない場合は、セルが赤くなるか、値が消えます (フォント/背景が一致)。これにより、ユーザーはそのセルの値を更新/再選択する必要があることがわかります。

これを(そして上記の他の人が言及したVBAメソッドを)説明するために、サンプルファイルはこちら必要なファイルは依存リスト3.xls

関連情報