
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ベーシック選択問題集をご用意しました。
型が一致しません(エラー 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で自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。