• ベストアンサー

EXCELのデータ入力規則を設定した項目

EXCELのデータ入力規則を設定したセルにVBAで違反する値を書きこんでもエラーになりません。 違反する書き込みであることを検出することはできないでしょうか。 EXCEL2016で試しましたが、手で入力するとエラーになりますが、VBAで書き込みとエラーになりません。 宜しくお願いします。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.1

こちらのサイトの最後の方に対処方が記載されていますので参考にしてみてください。 VBAでなくてもコピペで入れてもエラーにならないので Worksheet_Changeイベントでで対処するという事です。 第126回.入力規則(Validation) https://excel-ubara.com/excelvba1/EXCELVBA426.html 以下の所です Private Sub Worksheet_Change(ByVal Target As Range) If Target.Validation.Value = False Then MsgBox "入力規則に無効データが入力されました。" & vbLf & _ "入力データを元に戻します。" Application.Undo End If End Sub

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.3

回答No.1回答No.2の追加です。 入力箇所がA1だとして Range("A1").Activate SendKeys "{F2}" SendKeys "{ENTER}" という方法もあると思いますが実行時の環境によってはうまくいかないこともあると思いますのであまりお勧めはしません。

すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.2

回答No.1の追加です。 Application.Undo だともともと条件以外の値が入っていたとかの場合などの時には無限ループになるので Target.Value = "" にしていた方がいいかもしれません。

すると、全ての回答が全文表示されます。

関連するQ&A