【VBA】変数のデータ型を調べる方法

【VBA】変数のデータ型を調べる方法

今回はVBAで変数やオブジェクトの型を調べる2つの方法を紹介します。

1. 変数のデータ型を調べる方法(TypeName関数)

Sub CheckTypeName()
    Dim intA As Integer
    Dim lngB As Long
    Dim sngC As Single
    Dim dblD As Double
    Dim crrE As Currency
    Dim dtF As Date
 
    Debug.Print TypeName(intA) 'Integer
    Debug.Print TypeName(lngB) 'Long
    Debug.Print TypeName(sngC) 'Single
    Debug.Print TypeName(dblD) 'Double
    Debug.Print TypeName(crrE) 'Currency
    Debug.Print TypeName(dtF) 'Date
End Sub

1つ目の方法はTypeName関数を使用する方法です。

TypeName関数は引数に与えられたデータの型を文字列で返します。

2. 変数のデータ型を調べる方法(VarType関数)

Sub CheckVarType()
 
    Dim intA As Integer
    Dim lngB As Long
    Dim sngC As Single
    Dim dblD As Double
    Dim crrE As Currency
    Dim dtF As Date
 
    Debug.Print VarType(intA) '2(vbInteger)
    Debug.Print VarType(lngB) '3(vbLong)
    Debug.Print VarType(sngC) '4(vbSingle)
    Debug.Print VarType(dblD) '5(vbDouble)
    Debug.Print VarType(crrE) '6(vbCurrency)
    Debug.Print VarType(dtF) '7(vbDate)
End Sub

2つ目の方法はVarType関数を使用する方法です。

VarType関数は引数に与えられたデータの型を数値で返します。

この数値には下の表のようにvbから始まる定数が用意されています。

例えば、If VarType(変数) = vbInteger Thenなどとすれば変数の型がIntegerの場合のみ実行、といった処理が書けます。

定数データ型
vbEmpty0空 (未初期化)
vbNull1Null (有効なデータではない)
vbInteger2Integer型
vbLong3Long型(長整数)
vbSingle4Single型(単精度浮動小数点数)
vbDouble5Double型(倍精度浮動小数点数)
vbCurrency6通貨型
vbDate7日付型
vbString8String型
vbObject9Object
vbError10エラー値
vbBoolean11Boolean型
vbVariant12Variant型 (バリアントの 配列でのみ使用される)
vbDataObject13データ アクセス オブジェクト
vbDecimal14Decimal型(10進値)
vbByte17Byte型
vbLongLong20LongPtr型(64 ビット プラットフォームでのみ有効)
vbUserDefinedType36ユーザー定義型を含むバリアント

VBAが難しいと感じたら
プロにお任せして代わりに作ってもらってはいかがでしょう?
VBAの作成依頼はこちらから

《VBA中級者向けの本》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。

created by Rinker
技術評論社
¥3,608 (2023/02/07 15:31:32時点 Amazon調べ-詳細)

他の「VBA」の記事はこちらからどうぞ

VBA

Posted by やろまい