質問: Excelの入力規則を使って、プルダウンを作りました。 普通に、プルダウンの中の項目以外を入力するとアラートが表示され、 入力が拒否されるのですが、入力セルで、右クリック→「ドロップダウンリストから選択」から入力すると、 リストにない項目でも入力されてしまいます。 これを回避する方法はあるのでしょうか。 よろしくお願いします。 A4がプルダウンになっている。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/28b6a2a52dcedd383fd48e65679a8a75.png) 普通に「あ」と入力すると拒否される ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/28a01546ecaf6966e9f738b0bc4a0b99.png) 右クリック→「ドロップダウンリストから選択」から入力すると入力が成功する ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/425c82424752da702885ff13e84ad3af.png)
回答: 最初に、前回の私の回答が完全に的外れな回答であったことを訂正してお詫びします。 大変申し訳ございませんでした。 改めて、こちらでも色々調べましたが、どうやら 1. データの入力規則で設定した「リスト」 2. 右クリックの「ドロップダウンリスト」 はお互い全く異なるものであるため、入力規則のリスト設定値以外のデータが 入力されてしまう、ということが分かりました。 1.のリストは特定のセル範囲内の任意の値を入力するものですが、2.のリストの場合は 「同じ列のデータの中から任意のデータを連続して入力する場合」に利用する際に 利用できるものです。 参考:「インストラクターのネタ帳」の「リストを作らずにドロップダウン−ドロップダウンリストから選択」より 2.の場合、提示された例では「あ」「壱」というリストが表示されて、それからの入力となるはずです。 このため、入力規則の「リスト」とは異なる値が入力可能となる、というもので、 Excelのバグではなく、ある意味「表現が紛らわしいが、入力には便利な」機能です...。 回避方法ですが、ttyp03様やJawa様のマクロが一番効果的かと思われます。 (イベントプロシージャ等を利用していますので、これでしたら目的を達成可能かと。) **該当のコンテキストメニューを一時的に削除する**、という非常に乱暴なやり方も考えたんですが、 これは**Excelのデフォルトのメニューでやると非常に危険ですので絶対に行なわないようにして下さい...** (Excelのインストールやり直し等の良くない事態を招きますので。) →この件ですが、 ``` CommandBars("Cell").Controls("ドロップダウン リストから選択(K)").Delete ``` で一旦削除し、ブックを閉じる段階で ``` CommandBars("Cell").Reset ``` で戻す事を想定したものです。 ttyp03様のコードは私も知りませんでした...。己の未熟さを恥じるばかりです...。 ttyp03様へ 御提示のコマンド、大変参考になりました。ありがとうございます。 と同時に、横入りしながら的外れな回答をしてしまい、大変申し訳ございませんでした...。