- ベストアンサー
エクセルの入力規則で「空白を無視する」
エクセル2010です。 あるセルには必ず入力が必要なので、入力規則でリストを設定し、「空白を無視する」のチェックを外しました。 これで、BackSpaceキーで削除した空白値に対してはエラーメッセージが表示されるのですが、Deleteキーで削除した空白値はエラーにならず許可されてしまいます。 これではほとんど意味がありません。 VBAでなら対処できますが、入力規則では無理なのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
入力規則の「Deleteキー」と「BackSpaceキー」に関しては、個人的には変に納得しているので解答させてもらいます。 >・・・「空白を無視する」のチェックを外しました。 >・・・BackSpaceキーで削除した空白値に対してはエラーメッセージが表示される・・・ >・・・Deleteキーで削除した空白値はエラーにならず許可されてしまいます。 まず確認ですが、Deleteキーの挙動は「空白を無視するのチェック」とは関係ありません。オンでもオフでも同じです。どちらもメッセージは出ません。 添付図で説明すると、BackSpaceキーで削除した時点では、ステータスバーの左下を見ると「入力」モードです。従って、Enterキーなどで確定すると入力規則が働いて空白なら「空白を無視する」のチェックを外せば、メッセージが出るわけです。 Deleteキーはというとステータスバーは「コマンド」となっておりコマンド待ちで「入力」モードではありません。入力規則が適用されなかったことになります。 どう納得したかというと、添付図のセルB6、B7は入力規則を設定して空白なのに何のメッセージも出ません。添付図ではセルB4の入力値をDeleteキーで削除しましたが、これはセルB6、B7と同じ状態(入力前)にしたのだと理解しています。当然、入力規則の適用範囲外です。 >あるセルには必ず入力が必要なので これがよく分からないです。「入力」の定義がよく分かりませんが、あるセルに入力する前は「未入力が許された状態」で、一たびそのセルに入力しようとすると「何らかの入力必須」に変えようとしているように思えます。 入力をやめようとすると、入力しようとする人にとっては未入力は不可なので「とりあえず何でもいいから入れとけ」となりがちです。入力項目がたくさんあるとありがちです。実務でよく見かけます。 で、どのように対応しているかというと、あくまでも入力規則は入力を楽にしてくれる弱い制約だと認識し、次の処理に移るときに綿密なチェックをするようにしています。 ご参考に。
その他の回答 (1)
- Cupper-2
- ベストアンサー率29% (1342/4565)
入力規則は万能ではありません。 コピーして貼り付けた値にも反応しなかったりしますよ。 そんなわけで、そのセルの値を利用する計算式で対処するのが王道ですね。
お礼
ありがとうございます。 おっしゃる通りですね。
お礼
なるほど、「入力」と「コマンド」の違いですか。 ありがとうございます。