即効テクニック |
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変数の戻り値では、変数の型を表す文字列の後ろに、配列変数であることを示す括弧()が表示されていることに注目してください。