入力チェックやエラー回避に型変換関数を活用する実務サンプルをまとめました。
ユーザー入力やセル値を扱う際に、型変換を組み合わせることで「数値であるか」「日付として解釈できるか」を判定し、エラーを未然に防げます。
実務サンプル集(入力チェック+型変換)
1. 数値入力チェック(CInt / IsNumeric)
Sub CheckNumeric()
Dim val As String
val = Range("A1").Value
If IsNumeric(val) Then
MsgBox "数値です → " & CInt(val)
Else
MsgBox "数値ではありません"
End If
End Sub
VB👉 文字列を数値に変換できるか確認。入力が「123a」などの場合はエラーを防止。
2. 日付入力チェック(CDate / IsDate)
Sub CheckDate()
Dim val As String
val = Range("B1").Value
If IsDate(val) Then
MsgBox "日付です → " & CDate(val)
Else
MsgBox "日付ではありません"
End If
End Sub
VB👉 文字列を日付に変換可能か判定。誤入力(例:「2025/13/1」)を検出。
3. 空欄チェック+文字列変換(CStr)
Sub CheckEmpty()
Dim val As Variant
val = Range("C1").Value
If Trim(CStr(val)) = "" Then
MsgBox "未入力です"
Else
MsgBox "入力あり → " & CStr(val)
End If
End Sub
VB👉 空欄やスペースのみを検出。必須項目チェックに利用。
4. 真偽値チェック(CBool)
Sub CheckBoolean()
Dim val As String
val = Range("D1").Value
On Error Resume Next
MsgBox "真偽値 → " & CBool(val)
If Err.Number <> 0 Then
MsgBox "True/Falseに変換できません"
Err.Clear
End If
On Error GoTo 0
End Sub
VB👉 Yes/Noや0/1をTrue/Falseに変換。入力誤りを検出。
5. 安全な数値変換(CDbl+エラートラップ)
Sub SafeConvert()
Dim val As String, num As Double
val = Range("E1").Value
On Error GoTo ERR_HANDLER
num = CDbl(val)
MsgBox "数値変換成功 → " & num
Exit Sub
ERR_HANDLER:
MsgBox "数値に変換できません: " & val
Err.Clear
End Sub
VB👉 CDblで変換できない場合にエラーをキャッチ。処理が止まらない。
✅ まとめ
- IsNumeric / IsDate で事前チェック → 型変換エラーを防止
- CStr / Trim で空欄やスペース入力を検出
- On Error Resume Next と組み合わせて安全に変換
- 実務利用例:年齢入力チェック、日付必須項目、売上金額の数値変換、フラグのTrue/False判定
👉 この仕組みを応用すれば、「入力シート全体を走査してエラー箇所を色付け」するチェックマクロも作れます。
