型変換チェック
業務でよくあるエラーのひとつが「型変換エラー」です。
例えば「文字列を数値に変換しようとしたら失敗」「日付に変換できない文字列が入っていた」など。
初心者向けに、型変換チェックの基本テンプレートを例題付きで分かりやすく説明します。
基本の考え方
- 型変換チェックの目的:
- 入力値が「数値」「日付」「文字列」などに正しく変換できるかを事前に確認する
- 変換できない場合はエラーを防ぎ、ユーザーに分かりやすく知らせる
- よく使う関数:
IsNumeric(値)→ 数値に変換できるか判定IsDate(値)→ 日付に変換できるか判定CInt,CLng,CDbl,CDate→ 型変換関数(変換前にチェック必須)
テンプレ1:数値変換チェック
Sub CheckNumericConversion()
Dim val As Variant
val = Worksheets("Input").Range("A1").Value
If IsNumeric(val) Then
MsgBox "数値に変換可能: " & CLng(val)
Else
MsgBox "数値に変換できません: " & val
End If
End Sub
VB- ポイント:
IsNumericで判定してからCLngなどで変換。- 判定なしで変換するとエラーになる。
テンプレ2:日付変換チェック
Sub CheckDateConversion()
Dim val As Variant
val = Worksheets("Input").Range("A2").Value
If IsDate(val) Then
MsgBox "日付に変換可能: " & CDate(val)
Else
MsgBox "日付に変換できません: " & val
End If
End Sub
VB- ポイント:
IsDateで判定してからCDateで変換。- 「2025/12/12」などはOK、「ABC」はNG。
テンプレ3:文字列変換チェック
Sub CheckStringConversion()
Dim val As Variant
val = Worksheets("Input").Range("A3").Value
If Not IsEmpty(val) Then
MsgBox "文字列として扱えます: " & CStr(val)
Else
MsgBox "値が空です。"
End If
End Sub
VB- ポイント:
CStrはほとんどの値を文字列に変換可能。- 空セルは事前にチェック。
テンプレ4:共通関数で型変換チェック
Function SafeConvertToLong(ByVal val As Variant) As Variant
If IsNumeric(val) Then
SafeConvertToLong = CLng(val)
Else
SafeConvertToLong = CVErr(xlErrValue) ' エラー値を返す
End If
End Function
Sub ExampleUse()
Dim result As Variant
result = SafeConvertToLong("123")
If IsError(result) Then
MsgBox "変換失敗"
Else
MsgBox "変換成功: " & result
End If
End Sub
VB- ポイント:
- 共通関数化すると再利用できる。
- 失敗時は
CVErrでエラー値を返す。
例題で練習
'例1:セルA1の値を数値に変換できるかチェック
'例2:セルA2の値を日付に変換できるかチェック
'例3:セルA3の値を文字列に変換できるかチェック
'例4:共通関数で安全に数値変換
VB初心者向けポイント
- 型変換は必ず事前チェック → 直接変換するとエラーになる
- IsNumeric / IsDate が基本ツール
- 共通関数化すると便利
- エラーメッセージは分かりやすく → ユーザーが修正しやすい
👉 この「型変換チェックテンプレ」を覚えておけば、Excel VBAで 入力値を安全に型変換し、業務エラーを防ぐ仕組み を簡単に作成できます。
