更新日:、 作成日:
VBA TypeName 関数:型名を取得する
はじめに
Excel VBA マクロの TypeName 関数から型名を取得する方法を紹介します。
TypeName 関数は、指定した変数の型名を返します。
100 なら Integer を返します。
文字列なら String を返します。
Sheet1 なら Worksheet を返します。
Variant や Object 型に代入されている型を判定したいときに使用します。
型情報を数値で取得するには「VarType 関数」を使用します。
TypeName 関数の引数と戻り値
TypeName(値)
値の型名を取得します。
引数「値」 | 変数や値を指定します。 |
戻り値の型 | 文字列型 (String) |
引数「値」と戻り値の例
値 | 戻り値 |
100 | Integer などの数値型の名前 |
#12/31/2000# | Date |
"Tips" | String |
True | Boolean |
CVErr(2042) | Error |
Empty | Empty |
Null | Null |
Nothing | Nothing |
オブジェクト | Worksheet などのオブジェクトの名前 |
不明な値 | Unknown |
配列なら型の後ろに () を付けて返します。
型 | 戻り値 |
Integer の配列 | Integer() |
Date の配列 | Date() |
String の配列 | String() |
Variant の配列 | Variant() |
オブジェクトの配列 | オブジェクト名() |
スポンサーリンク
解説
引数「値」の型名 (Integer 型なら Integer) を文字列で返します。
引数「値」が配列なら 型名() のように、後ろに () を付けて返します。
Variant 型や Object 型のときは、それに代入されている値の型名を返します。
Variant 型の配列のときは Variant() を返します。
Object 型の配列のときは Object() を返します。
引数「値」が構造体 (Type) なら「エラー パブリック オブジェクト モジュールで定義されたユーザー定義型に限り、変数に割り当てることができ、実行時バインディングの関数に渡すことができます。」が発生します。
型情報を数値で取得するには「VarType 関数」を使用します。
使用例
TypeName 関数の使用例を紹介します。
型名を取得する
型名を取得します。
Dim v As Variant
Dim s As String
v = 100
s = TypeName(v)
Debug.Print(s) ' Integer
v = 1.5
s = TypeName(v)
Debug.Print(s) ' Double
v = "Tips"
s = TypeName(v)
Debug.Print(s) ' String
v = Now
s = TypeName(v)
Debug.Print(s) ' Date
v = True
s = TypeName(v)
Debug.Print(s) ' Boolean
v = CVErr(2042)
s = TypeName(v)
Debug.Print(s) ' Error
Dim vEmpty As Variant
s = TypeName(vEmpty)
Debug.Print(s) ' Empty
Dim o As Object
s = TypeName(o)
Debug.Print(s) ' Nothing
Set o = Worksheets(1)
s = TypeName(o)
Debug.Print(s) ' Worksheet
v = Array(1, 2, 3)
s = TypeName(v)
Debug.Print(s) ' Variant()
Dim i(10) As Integer
s = TypeName(i)
Debug.Print(s) ' Integer()
Dim vs(10) As Variant
vs(0) = 10
s = TypeName(vs)
Debug.Print(s) ' Variant()