【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の場合のみ実行、といった処理が書けます。
定数 | 値 | データ型 |
---|---|---|
vbEmpty | 0 | 空 (未初期化) |
vbNull | 1 | Null (有効なデータではない) |
vbInteger | 2 | Integer型 |
vbLong | 3 | Long型(長整数) |
vbSingle | 4 | Single型(単精度浮動小数点数) |
vbDouble | 5 | Double型(倍精度浮動小数点数) |
vbCurrency | 6 | 通貨型 |
vbDate | 7 | 日付型 |
vbString | 8 | String型 |
vbObject | 9 | Object |
vbError | 10 | エラー値 |
vbBoolean | 11 | Boolean型 |
vbVariant | 12 | Variant型 (バリアントの 配列でのみ使用される) |
vbDataObject | 13 | データ アクセス オブジェクト |
vbDecimal | 14 | Decimal型(10進値) |
vbByte | 17 | Byte型 |
vbLongLong | 20 | LongPtr型(64 ビット プラットフォームでのみ有効) |
vbUserDefinedType | 36 | ユーザー定義型を含むバリアント |