構文
VarType(varname)
varname・・・任意の「変数」・「オブジェクト」・「値」を指定します。
戻り値 ・・・整数型 (Integer)
戻り値 ・・・整数型 (Integer)
変数の情報やオブジェクト・変数の種類(データ型)を数値で取得します。
戻り値の一覧
変数型はデータ型一覧にあるような形なのでわかりやすいです。
オブジェクト型になると無数にある為、代表的なものをご紹介します。
| 定数 | 値 | 説明 |
| vbEmpty | 0 | Empty 値 (未初期化) |
| vbNull | 1 | Null (無効な値) |
| vbInteger | 2 | 整数型 (Integer) |
| vbLong | 3 | 長整数型 (Long) |
| vbSingle | 4 | 単精度浮動小数点数型 (Single) |
| vbDouble | 5 | 倍精度浮動小数点数型 (Double) |
| vbCurrency | 6 | 通貨型 (Currency) |
| vbDate | 7 | 日付型 (Date) |
| vbString | 8 | 文字列型 (String) |
| vbObject | 9 | オブジェクト |
| vbError | 10 | エラー値 |
| vbBoolean | 11 | ブール型 (Boolean) |
| vbVariant | 12 | バリアント型 (Variant) (バリアント型配列にのみ使用) |
| vbDataObject | 13 | 非OLEオートメーション オブジェクト |
| vbDecimal | 14 | 10 進数型 |
| vbByte | 17 | バイト型 (Byte) |
| vbLongLong | 20 | LongLong 型の整数(64bit環境のみ) |
| vbUserDefinedType | 36 | ユーザー定義型を含むバリアント型 |
| vbArray | 8192 | 配列 |
コードサンプル
Public Sub test()
'■通常の変数
Dim str As String
Dim num As Long
MsgBox VarType(str) '8 vbString
MsgBox VarType(num) '3 vbLong
'■オブジェクト変数
Dim rng As Range
Dim ws As Worksheet
'TypeName関数と異なり、vbObjectだけで戻ってくる
MsgBox VarType(rng) '9 vbObject
MsgBox VarType(ws) '9 vbObject
Dim arr1() As Variant
Dim arr2(5) As Long
'配列+データ型で戻ってくる
MsgBox VarType(arr1) '8204(8192vbArray+12vbVariant)
MsgBox VarType(arr2) '8195(8192vbArray+3vbLong)
End Sub
注意点
- 型情報を文字列で判別する場合は「TypeName関数」を使用します。
- 配列の場合は「配列」+「データ型」で戻ってきます。単独で 8192 vbArrayは戻りません。
- オブジェクトは「TypeName関数」と異なり、全て 9 vbObjectで戻ってきます。
使い方例
指定したデータ型が想定しているデータ型と違った場合、エラーが出る場合があります。
不具合発生させないための、エラー回避に使います。
関連記事
【VBA基本】変数のデータ型一覧
配列の宣言(静的/動的/1次元/2次元)【ExcelVBA】
配列かどうか調べる【IsArray関数】【ExcelVBA】
指定した要素で配列を作成【Array関数】【ExcelVBA】
変数やオブジェクトの型を判別する【戻り値:文字列】【TypeName関数】【ExcelVBA】



コメント