構文
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】
コメント