Excel VBA 逆引き集 | 型変換チェック

Excel VBA
スポンサーリンク

型変換チェック

業務でよくあるエラーのひとつが「型変換エラー」です。
例えば「文字列を数値に変換しようとしたら失敗」「日付に変換できない文字列が入っていた」など。
初心者向けに、型変換チェックの基本テンプレートを例題付きで分かりやすく説明します。


基本の考え方

  • 型変換チェックの目的:
    • 入力値が「数値」「日付」「文字列」などに正しく変換できるかを事前に確認する
    • 変換できない場合はエラーを防ぎ、ユーザーに分かりやすく知らせる
  • よく使う関数:
    • 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で 入力値を安全に型変換し、業務エラーを防ぐ仕組み を簡単に作成できます。

タイトルとURLをコピーしました