TypeName関数は、対象の変数の内部処理形式や、参照している
オブジェクトの種類など、変数に関する情報を文字列型の文字列
で返します。一方、VarType関数は、変数の内部処理形式を表す
整数型の値を返します。ともに、バリアント型変数に何が格納され
ているのかを調べる際に使用します。
TypeName関数で返される文字列と変数の状態の対応は、次の一覧
で確認してください。
・TypeName関数で返される文字列と変数の状態の一覧
文字列 変数
オブジェクトの種類 返された文字列で表される種類のオブジェクト
Byte バイト型(Byte)
Integer 整数型(Integer)
Long 長整数型(Long)
Single 単精度浮動小数点数型(Single)
Double 倍精度浮動小数点数型(Double)
Currency 通貨型(Currency)
Decimal 10進数型
Date 日付型(Date)
String 文字列型(String)
Boolean ブール型(Boolean)
Error エラー値
Empty 未初期化
Null 無効な値
Object オブジェクト
Unknown オブジェクトの種類が不明なオブジェクト
Nothing オブジェクトを参照していないオブジェクト変数
VarType関数の戻り値とその内容、定数の関係については次の一覧
のとおりです。
・VarType関数の戻り値とその内容、定数(vbEmpty)
定数 値 内容
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 配列
●補足●
VarType関数は、定数vbArrayの値(8192)をそのまま返すことは
ありません。この値は、常にデータ型を表す他の値と加算されて返
されます。つまり、配列の要素のデータ型が何なのかを表す数値と
して返されます。
構文 TypeName(varname)
VarType(varname)
設定項目 内容
varname ユーザー定義型以外のバリアント型の変数を指定[省略不可]
次のサンプルは、配列変数をVarType関数で調べたときの戻り値を
表示します。
●サンプル●
Sub VarTypeSamp1()
Dim myArray1() As Integer
Dim myArray2() As String
'---(1)
MsgBox VarType(myArray1()) & vbTab & TypeName(myArray1())
'---(2)
MsgBox VarType(myArray2()) & vbTab & TypeName(myArray2())
End Sub
●解説●
(1)では整数型の配列変数を対象にしているため、2と8192を加算した
結果の8194が、(2)では文字列方の配列変数を対象にしているため、8と
8192を加算した結果の8200が戻り値として得られます。また、TypeName
変数の戻り値では、変数の型を表す文字列の後ろに、配列変数であること
を示す括弧()が表示されていることに注目してください。
|