HOME > 即効テクニック > Excel VBA > 関数関連のテクニック > 変数に関する情報を取得(TypeName関数、VarType関数)

即効テクニック

関数関連のテクニック

変数に関する情報を取得(TypeName関数、VarType関数)

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