キムは、ドロップダウンリストを使用して回答を提示するためにデータ検証に依存するフォームをExcelで作成しました。フォームには一連の質問があります。彼は、質問に順番に答えるように強制する方法があるかどうか疑問に思います。たとえば、ユーザーが質問2に進む前に質問1に回答することなどを望んでいます。

この種のタスクを実行すると、マクロを使用したり、ユーザーフォームを作成したりすることで悲鳴を上げる可能性がありますが、この方法を実行する必要はありません。 (マクロとユーザーフォームの使用は非常に強力ですが、一部の人が望むよりも複雑です。)データ検証ドロップダウンリストで使用する仕様を調整するだけで、ある程度の「秩序」を得ることができます。

例として、ブックにいくつかの名前付き範囲を設定する必要があります。セルを選択し、「デフォルト」という名前を付けます。そのセルに、「質問に順番に答える」などのデフォルトのメッセージを入力します。別の名前付き範囲(おそらく「Q1Answers」という名前)には、最初の質問に対する受け入れ可能な回答のリストを含めます。最後に、「Q1Response」など、質問に対するユーザーの回答を含むセルに名前を割り当てる必要があります。他の質問に対する他の受け入れ可能な回答と回答(Q2Answers、Q3Answers、Q2Responseなど)に対して同様の名前付き範囲を作成できます。

次に、各質問の検証チェックで、数式を使用して、Excelが可能な回答として使用するものを指定できます。このシナリオでは、質問1の検証設定は簡単です。 [許可]設定を[リスト]に設定し、使用するQ1Answers範囲を使用することを([ソース]ボックスで)指定するだけです。ただし、以降の質問では、[ソース]ボックスで数式を使用する必要があります。たとえば、質問2の場合、[ソース]ボックスで次の数式を使用する必要があります。

=IF(OR(Q1Response="",Q1Response=Default),Default,Q2Answers)

後続の質問ごとに、Q1の指定を前の質問に適切なものに変更し、Q2の指定を現在の質問に適切なものに変更します。この式は、質問1への回答が空であるか、デフォルト値と等しい場合(「質問に順番に回答する」)、質問2の選択肢としてデフォルトの回答が表示されることを指定しているため機能します。これらの条件のどちらでもない場合存在する場合、質問2の回答が表示され、選択可能です。以前の質問に回答していないときに質問に回答しようとすると、表示されるドロップダウンオプションはデフォルト値(「質問に順番に回答する」)のみになります。

必要に応じて、条件付き書式をミックスに追加することで、このアプローチをさらに一歩進めることができます。同じ種類のテストを使用する場合(前の質問に回答したかどうかを確認するため)、質問を含むセルの書式を変更できます。たとえば、前の質問に回答がない場合は、後の質問をフォーマットして、白いタイプで表示されるようにします。それはそれらをセルの白い背景に消えさせます。次に、各質問に回答すると、次の質問が順番に表示されます。

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

このヒント(8386)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。