Excelで入力された値が、設定している型でなかったり、入力された数値が大きすぎたりした場合、オーバーフローなどのエラーが発生し停止してしまいます。
よく自分以外の人に使ってもらうと、思いがけない操作や思いがけない値を入力される場合があります。
その為、エラーで停止しないよう事前にチェックします。
日付の場合、日付型かどうか、想定している期間内に入っているか等のチェックをします。
数値の場合、文字が含まれていないか、型範囲内の値か、必要な範囲内に入っているか等のチェックをします。
正しくなければ、メッセージを表示し修正を促すことが一般的です。
ここでは、日付のチェックとLong型で正の値であるかのチェックを掲載しています。
このVBAをコピーすれば、そのままで使用できます。
関連するTipsの「テキストボックスの数値入力値チェック」も参照してください。
■日付のチェック
正しくなければFalseを返します。
Private Function datecheck(scl As String) As Boolean
Dim lv As Long
datecheck = False
On Error GoTo ErrRtn
If IsDate(Range(scl)) Then
datecheck = True
Exit Function
End If
ErrRtn:
Beep
Range(scl).Select
MsgBox "日付が不正です。修正してください。", , "エラー"
End Function
■Long型で正の値であるかのチェック
Long型でなければ-1を返します。
Private Function valcheck(scl As String) As Long
Dim lv As Long
valcheck = -1
On Error GoTo ErrRtn
If IsNumeric(Range(scl)) Then
lv = Val(Range(scl))
valcheck = lv
Exit Function
End If
ErrRtn:
Beep
Range(scl).Select
MsgBox "数値が不正です。修正してください。", , "エラー"
End Function
■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します