• ベストアンサー

エクセルの入力規則で「空白を無視する」

エクセル2010です。 あるセルには必ず入力が必要なので、入力規則でリストを設定し、「空白を無視する」のチェックを外しました。 これで、BackSpaceキーで削除した空白値に対してはエラーメッセージが表示されるのですが、Deleteキーで削除した空白値はエラーにならず許可されてしまいます。 これではほとんど意味がありません。 VBAでなら対処できますが、入力規則では無理なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

入力規則の「Deleteキー」と「BackSpaceキー」に関しては、個人的には変に納得しているので解答させてもらいます。 >・・・「空白を無視する」のチェックを外しました。 >・・・BackSpaceキーで削除した空白値に対してはエラーメッセージが表示される・・・ >・・・Deleteキーで削除した空白値はエラーにならず許可されてしまいます。  まず確認ですが、Deleteキーの挙動は「空白を無視するのチェック」とは関係ありません。オンでもオフでも同じです。どちらもメッセージは出ません。  添付図で説明すると、BackSpaceキーで削除した時点では、ステータスバーの左下を見ると「入力」モードです。従って、Enterキーなどで確定すると入力規則が働いて空白なら「空白を無視する」のチェックを外せば、メッセージが出るわけです。  Deleteキーはというとステータスバーは「コマンド」となっておりコマンド待ちで「入力」モードではありません。入力規則が適用されなかったことになります。  どう納得したかというと、添付図のセルB6、B7は入力規則を設定して空白なのに何のメッセージも出ません。添付図ではセルB4の入力値をDeleteキーで削除しましたが、これはセルB6、B7と同じ状態(入力前)にしたのだと理解しています。当然、入力規則の適用範囲外です。 >あるセルには必ず入力が必要なので  これがよく分からないです。「入力」の定義がよく分かりませんが、あるセルに入力する前は「未入力が許された状態」で、一たびそのセルに入力しようとすると「何らかの入力必須」に変えようとしているように思えます。  入力をやめようとすると、入力しようとする人にとっては未入力は不可なので「とりあえず何でもいいから入れとけ」となりがちです。入力項目がたくさんあるとありがちです。実務でよく見かけます。  で、どのように対応しているかというと、あくまでも入力規則は入力を楽にしてくれる弱い制約だと認識し、次の処理に移るときに綿密なチェックをするようにしています。 ご参考に。

emaxemax
質問者

お礼

なるほど、「入力」と「コマンド」の違いですか。 ありがとうございます。

その他の回答 (1)

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

入力規則は万能ではありません。 コピーして貼り付けた値にも反応しなかったりしますよ。 そんなわけで、そのセルの値を利用する計算式で対処するのが王道ですね。

emaxemax
質問者

お礼

ありがとうございます。 おっしゃる通りですね。

関連するQ&A