こちらに「データ判定関数(IsNumeric / IsDate / IsEmpty / IsNull / IsError / VarType / TypeName など)」を活用した入力チェック・エラー回避の実務サンプル集をまとめました。
実務でよくある「未入力」「数値誤り」「日付誤り」「エラー値」などを防ぐ仕組みです。
入力チェック・エラー回避サンプル集
1. 未入力チェック(IsEmpty / Trim)
Sub CheckEmpty()
Dim val As Variant
val = Range("A2").Value
If IsEmpty(val) Or Trim(CStr(val)) = "" Then
MsgBox "必須項目が未入力です。"
Else
MsgBox "入力あり → " & val
End If
End Sub
VB👉 必須入力項目の空欄を検出。スペースのみも未入力扱い。
2. 数値チェック(IsNumeric)
Sub CheckNumeric()
Dim val As Variant
val = Range("B2").Value
If IsNumeric(val) Then
MsgBox "数値として有効 → " & CDbl(val)
Else
MsgBox "数値ではありません"
End If
End Sub
VB👉 数値以外の入力を防止。売上や数量の入力チェックに利用。
3. 日付チェック(IsDate)
Sub CheckDate()
Dim val As Variant
val = Range("C2").Value
If IsDate(val) Then
MsgBox "日付として有効 → " & CDate(val)
Else
MsgBox "日付形式が不正です"
End If
End Sub
VB👉 日付形式の誤りを検出。入社日や納期の入力チェックに便利。
4. Null判定(IsNull)
Sub CheckNull()
Dim val As Variant
val = Null
If IsNull(val) Then
MsgBox "値がNullです"
End If
End Sub
VB👉 データベース連携時のNull値を検出。処理を分岐させられる。
5. エラー値判定(IsError)
Sub CheckError()
Dim val As Variant
val = Application.VLookup("XXX", Range("A1:B10"), 2, False)
If IsError(val) Then
MsgBox "検索結果がエラーです (#N/A など)"
Else
MsgBox "検索成功 → " & val
End If
End Sub
VB👉 VLOOKUPや計算式のエラーを事前に検出して処理を止めない。
6. 型判定(VarType / TypeName)
Sub CheckType()
Dim val As Variant
val = Range("D2").Value
MsgBox "VarType: " & VarType(val) & vbCrLf & _
"TypeName: " & TypeName(val)
End Sub
VB👉 入力値の型を確認。デバッグや汎用処理で役立つ。
✅ まとめ
- IsEmpty / IsNull → 未入力・Null判定
- IsNumeric / IsDate → 数値・日付チェック
- IsError → 計算式や検索結果のエラー回避
- VarType / TypeName → 型を調べて処理を分岐
💡 これらを組み合わせれば、「入力シート全体を走査してエラー箇所を色付け」「エラー一覧を別シートに出力」といった実務的なチェックツールを構築できます。
