VarType関数で変数のデータ型を調べます
VarType関数 は 引数に指定した値のデータ型を示す数値 を返します。たとえば次のようなマクロを書いてみましょう。
Sub DataType1()
Dim x As Double
Debug.Print VarType(x)
End Sub
変数 x を Double型で宣言しておいてから、それを VarType関数に入れてあります。このマクロを実行すると「 5 」という数字が表示されます。これは変数が Double型であることを示す変数の組込定数 (vbDouble) です。もうひとつ試してみましょう。
Sub DataType2()
Dim mystr As String
Debug.Print VarType(mystr)
End Sub
今度は String型変数 mystr を宣言してあるので、String型に対応する組込定数「 8 」が返ってきます。
配列を示す数字は 8192
配列に対応する数字は 8192 ですけど、実際にこの値がそのまま返されることはありません。必ず要素のデータ型を示す数値に加算した値を返します。たとえば次のようなコードを書いたとします。
Sub DataType3()
Dim x(2) As Integer
x(1) = 1
x(2) = 2
Debug.Print VarType(x)
End Sub
このマクロでは配列要素が Integer型で宣言されています。Integer型を表す数値は 2 なので、配列を示す数値 8192 に 2 を加えて 8194 が返ってきます。
型がわからない場合に VarType関数を使います
VarType関数が使われるのは「このデータの型がよくわからないな~」てときです。たとえば Single型と Double型の数値を足したとき、その戻り値のデータ型がどうなるのかを調べてみましょう。
Sub DataType4()
Dim x As Single
Dim y As Double
Dim z As Variant
z = x + y
Debug.Print VarType(z)
End Sub
マクロを実行すると「 5 」という値が返ってくるので、Single型数値と Double型数値を加えると Double型となることがわかります。