ExcelVBA 変数の型が期待と違う|型が一致しません|型を調べる方法

 

ExcelVBA  変数の型(データ型)を適切に設定することが重要。変数の型が期待されるものと違うと、「型が一致しません(エラー 13)」 が発生します。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!

👇実務で“そのまま使える”テンプレ付きで、コピペするだけ
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き

 

Excel VBA 変数の型を調べる方法|シーン

以下のシーンで利用します。

1.ユーザー入力を数値型に変換する(例:"123" → 123)

2.オブジェクト型かどうかを判定する(例:セルのオブジェクト or 文字列)

3.エラーを回避するために、型をチェックして処理を分岐する。

 

Excel VBA 変数の型を調べる方法サンプルコード

型を調べる

標準モジュール

Option Explicit

Sub 型チェック()
    Dim testValue As Variant
    testValue = "123" ' 文字列としての123
    
    Debug.Print "VarType: " & VarType(testValue) ' 結果:8(文字列)
    Debug.Print "TypeName: " & TypeName(testValue) ' 結果:"String"
    
    If IsNumeric(testValue) Then
        Debug.Print "これは数値として扱えます。"
    Else
        Debug.Print "これは数値ではありません。"
    End If
End Sub

・VarType(testValue)は、数値(例:8)を返す。

・TypeName(testValue)は、人間が読める文字列(例:"String")を返す。

・IsNumeric(testValue)は、数値かどうかを判定する("123" は文字列でも数値として扱える)

 

自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。

👉無料ExcelVBAベーシック選択問題138問

 

型が一致しません(エラー 13)の原因と対策

標準モジュール(型が違うデータを代入したときに発生するエラー)

Option Explicit

Sub 型エラー()
    Dim num As Integer
    num = "abc" ' 文字列を数値型に代入 → エラー 13(型が一致しません)
End Sub

標準モジュール(エラー回避方法)

Option Explicit

Sub 型エラー回避()
    Dim num As Integer
    Dim inputValue As Variant
    inputValue = "123" ' 文字列の123

    If IsNumeric(inputValue) Then
        num = CInt(inputValue) ' 数値に変換して代入
        Debug.Print "変換成功:" & num
    Else
        Debug.Print "エラー:数値に変換できません"
    End If
End Sub

・IsNumeric(変数)で 数値かどうか確認してから代入する。

・CInt(変数), CDbl(変数), CStr(変数)で 適切な型に変換する。

型を判定して処理を分岐する

標準モジュール(入力値の型に応じて処理を変える)

Option Explicit

Sub 型チェック_分岐()
    Dim value As Variant
    value = Date ' 今日の日付

    Select Case VarType(value)
        Case vbString
            Debug.Print "文字列型です"
        Case vbInteger, vbLong, vbDouble
            Debug.Print "数値型です"
        Case vbDate
            Debug.Print "日付型です"
        Case Else
            Debug.Print "その他の型です"
    End Select
End Sub

・VarType()を使うと、型ごとの判定ができる。

・Select Case を使うと、コードが読みやすくなる。

 

Excel VBA 変数の型を調べる方法|まとめ

・VBAでは変数の型を正しく扱うことが重要

・型を調べるには VarType()や TypeName()を使う。

・「型が一致しません」エラーは IsNumeric()などで事前チェックして防ぐ。

・数値変換には CInt(), CDbl(), CStr()を使う。

 

Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。

👉無料ExcelVBAベーシック選択問題138問