【ExcelVBA・マクロ】TypeName関数の使い方|変数のデータ型を確認する方法【コピペOK】

TypeName関数の使い方 ExcelVBA

VBAでプログラムを作成していると、次のようなことはありませんか?

  • 変数の型を確認したい
  • オブジェクトの種類を調べたい
  • デバッグ時にデータ型を確認したい

このような場合は、TypeName関数を使うことで解決できます。
変数やオブジェクトのデータ型を文字列で取得できる便利な関数です。

この記事では、TypeName関数の基本から実務での活用方法まで分かりやすく解説します。


スポンサーリンク
スポンサーリンク

この記事でできること

  • 変数の型を確認できる
  • オブジェクトの種類を調べられる
  • デバッグ作業が効率化できる

TypeName関数とは?

TypeName関数は、指定した変数やオブジェクトのデータ型を文字列で返す関数です。

例えば次のような結果を取得できます。

  • String
  • Integer
  • Double
  • Range
  • Worksheet

基本:TypeName関数の使い方

基本構文はこちらです。

TypeName(変数)

基本例

Dim str As String

str = "ExcelVBA"

MsgBox TypeName(str)

→ String


数値型の確認

Dim num As Integer

num = 100

MsgBox TypeName(num)

→ Integer


Double型の確認

Dim num As Double

num = 123.45

MsgBox TypeName(num)

→ Double


Variant型の確認

Dim val As Variant

val = "テスト"

MsgBox TypeName(val)

→ String

Variantの場合は格納されている実際の型が返されます。


Rangeオブジェクトの確認

Dim rng As Range

Set rng = Range("A1")

MsgBox TypeName(rng)

→ Range


Worksheetオブジェクトの確認

Dim ws As Worksheet

Set ws = ActiveSheet

MsgBox TypeName(ws)

→ Worksheet


セルの値の型を確認する

MsgBox TypeName(Range("A1").Value)

セルの値が文字列なのか数値なのか確認できます。


よく返される型一覧

戻り値内容
String文字列
Integer整数
Long長整数
Double小数
Date日付
BooleanTrue/False
Rangeセル範囲
Worksheetワークシート

条件分岐で使う

型によって処理を変更できます。

Dim val As Variant

val = Range("A1").Value

If TypeName(val) = "String" Then
    MsgBox "文字列です"
End If

TypeNameとVarTypeの違い

関数戻り値
TypeName文字列
VarType数値コード

TypeName

MsgBox TypeName("ABC")

→ String

VarType

MsgBox VarType("ABC")

→ 8


実務での活用例

  • デバッグ作業
  • データチェック
  • 入力値検証
  • オブジェクト判定

特にエラー調査時に非常に役立ちます。


注意点

① Variantは中身の型を返す

Variantという文字列は返りません。


② Emptyの場合

Dim val As Variant

MsgBox TypeName(val)

→ Empty


③ オブジェクトにも使用可能

RangeやWorksheetなども判定できます。


安全な書き方(おすすめ)

Dim val As Variant

val = Range("A1").Value

Select Case TypeName(val)

    Case "String"
        MsgBox "文字列"

    Case "Double"
        MsgBox "数値"

    Case "Date"
        MsgBox "日付"

End Select

よくあるエラーと対処法

① 思った型が返らない

Variant型の場合は実際のデータ型が返されます。

② Emptyになる

変数へ値が代入されていない可能性があります。

③ オブジェクトエラーになる

Setされているか確認してください。

④ コードは正しいのにエラーになる

コピー時に全角文字や特殊文字が混ざることがあります。
その場合は該当行を手入力し直すと解決することがあります。


まとめ

  • TypeNameはデータ型を取得する関数
  • 文字列で分かりやすく表示される
  • デバッグやエラー調査で便利
  • VarTypeとの違いも覚えておくと便利

TypeName関数を使いこなせるようになると、データ型の確認が簡単になり、エラーの原因調査もスムーズになります。
デバッグ作業では非常に役立つため、ぜひ覚えておきましょう。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

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