■構文
VarType(varname)
■説明
変数の内部処理形式を表す整数型 (Integer) の値を返します。
第一引数:変数を指定します。
戻り値
■サンプルコード
VarType(varname)
■説明
変数の内部処理形式を表す整数型 (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) |
| vbUserDefinedType | 36 | ユーザー定義型を含むバリアント型 |
| vbArray | 8192 | 配列 |
■サンプルコード
Option Explicit
Sub SampleCode()
'■Empty値と判定するケース
Dim var0 As Variant
Debug.Print VarType(var0) '0
'注:値を入れたらその値の型に判定されます
var0 = 123
Debug.Print VarType(var0) '2
'■Null値と判定するケース
Dim var1 As Variant
var1 = Switch(False, "test") 'switch関数で真にならずNullを返す
Debug.Print VarType(var1) '1
'注:vbNullは長整数型の1と同等のため3を返します。
Debug.Print VarType(vbNull)
'■整数型と判定するケース
Dim var2 As Integer
Debug.Print VarType(var2) '2
Debug.Print VarType(-100) '2
Debug.Print VarType(32767) '2 32767まで整数型の範囲なので2を返す
'■長整数型と判定するケース
Dim var3 As Long
Debug.Print VarType(var3) '3
Debug.Print VarType(32768) '3 32768以上は長整数型の範囲
'■単精度浮動小数点数型と判定するケース
Dim var4 As Single
Debug.Print VarType(var4) '4
'■倍精度浮動小数点数型と判定するケース
Dim var5 As Double
Debug.Print VarType(var5) '5
Debug.Print VarType(1.1) '5
'■通貨型と判定するケース
Dim var6 As Currency
Debug.Print VarType(var6) '6
'■日付型と判定するケース
Dim var7 As Date
Debug.Print VarType(var7) '7
'■文字列型と判定するケース
Dim var8 As String
Debug.Print VarType(var8) '8
'注:改行コードやタブといったものも文字列型と判定されます
Debug.Print VarType(vbCrLf) '8
Debug.Print VarType(vbTab) '8
'■オブジェクトと判定するケース
Dim var9 As Object
Debug.Print VarType(var9) '9
Dim SelfClass As New TestClass '自作のTestClass
Debug.Print VarType(SelfClass) '9
'■ブール型と判定するケース
Dim var11 As Boolean
Debug.Print VarType(var11) '11
Debug.Print VarType(True) '11
Debug.Print VarType(False) '11
'■バリアント型と判定するケース(バリアント型の配列にのみ使用)
Dim var8204() As Variant
Debug.Print VarType(var8204)
'■10新数方と判定するケース
Dim var14 As Variant
var14 = CDec(123)
Debug.Print VarType(var14)
'■バイト型と判定するケース
Dim var17 As Byte
Debug.Print VarType(var17) '17
'■配列と判定するケース
Dim var8200(3) As String
Debug.Print VarType(var8200) '8200(String:8 + 配列:8192)
End Sub
0 件のコメント:
コメントを投稿