サイトについて      連絡先   検索

VBA VarType 関数

はじめに

Excel VBA マクロの VarType 関数を紹介します。

VarType 関数は、指定した変数のデータ型を示す数値を返します。

Variant や Object 型に設定されている型を調べたいときに使用します。

  • 目次
    • 構文
    • 解説
    • 使用例

構文

VarType()
の型を示す数値を取得します。

引数「値」変数や値を指定します。
戻り値の型数値型 (Integer)

引数「値」と戻り値の例

戻り値 定数
Empty0vbEmpty
Null1vbNull
1002vbInteger
1.55vbDouble
#12/31/2000#7vbDate
"Tips"8vbString
Nothing9vbObject
CVErr(2042)10vbError
True11vbBoolean
Variant の配列12vbVariant
配列型8192vbArray

配列を指定すると型の値 + 配列の値の合計を返します。

戻り値 定数
Integer の配列2 + 8192vbInteger + vbArray
String の配列8 + 8192vbString + vbArray
Variant の配列12 + 8192vbVariant + vbArray

解説

引数「値」の型に対応する値 (Integer 型なら 2) を返します。戻り値はすべて VbVarType 列挙型として定義されています。

Variant 型や Object 型のときは、それに入っている型の値を返します。

引数「値」が配列なら、その配列の型の値 (vbInteger など) に配列の値 (vbArray) を加えた数値を返します。

Variant 型や Object 型の配列または、その中に配列が入っているときは値に関係なく、vbVariantvbObjectに配列の値 (vbArray) を加えた数値を返します。

使用例


Dim i As Integer
Dim v As Variant

v = 100
i = VarType(v)
Debug.Print(i) ' 2 (vbInteger)

v = 1.5
i = VarType(v)
Debug.Print(i) ' 5 (vbDouble)

v = Now
i = VarType(v)
Debug.Print(i) ' 7 (vbDate)

v = "Tips"
i = VarType(v)
Debug.Print(i) ' 8 (vbString)

v = CVErr(2042)
i = VarType(v)
Debug.Print(i) ' 10 (vbError)

v = True
i = VarType(v)
Debug.Print(i) ' 11 (vbBoolean)

Dim vEmpty As Variant
i = VarType(vEmpty)
Debug.Print(i) ' 0 (vbEmpty)

Dim o As Object
i = VarType(o)
Debug.Print(i) ' 9 (vbObject)

Set o = Worksheets(1)
i = VarType(o)
Debug.Print(i) ' 9 (vbObject)
  
v = Array(1, 2, 3)
i = VarType(v)
Debug.Print(i) ' 8204 (12 + 8192, vbVariant + vbArray)

Dim ints(10) As Integer
i = VarType(ints)
Debug.Print(i) ' 8194 (2 + 8192, vbInteger + vbArray)

Dim vs(10) As Variant
vs(0) = 10
i = VarType(vs)
Debug.Print(i) ' 8204 (12 + 8192, vbVariant + vbArray)
  • 目次
    • 構文
    • 解説
    • 使用例