概要
TypeName
関数は、Excel VBAで変数やオブジェクトのデータ型を判別し、その型を文字列として返す関数です。例えば、数値型の変数には「Integer」、文字列型には「String」といったように、その変数が持つ具体的なデータ型の名前を取得できます。この関数は、プログラムのデバッグや動的型チェックの際に非常に有用です。
構文
TypeName(変数名)
パラメータ
-
変数名
データ型を取得したい変数やオブジェクトの名前を指定します。
戻り値
TypeName
関数は、指定した変数のデータ型を表す文字列を返します。返される文字列の内容は、変数の型によって異なります。
使用例
基本的な使用例 - データ型の取得
Sub CheckDataType()
Dim num As Integer
Dim txt As String
Dim isAvailable As Boolean
Dim obj As Object
num = 10
txt = "Hello"
isAvailable = True
Set obj = Worksheets(1)
MsgBox TypeName(num) ' 結果: Integer
MsgBox TypeName(txt) ' 結果: String
MsgBox TypeName(isAvailable) ' 結果: Boolean
MsgBox TypeName(obj) ' 結果: Worksheet
End Sub
この例では、TypeName
関数を使用してさまざまな変数のデータ型を取得しています。各変数に対応する型名がメッセージボックスに表示されます。
オブジェクトの型を判別する
Sub ObjectTypeCheck()
Dim rng As Range
Dim sht As Worksheet
Set rng = Range("A1")
Set sht = ActiveSheet
MsgBox TypeName(rng) ' 結果: Range
MsgBox TypeName(sht) ' 結果: Worksheet
End Sub
この例では、Range
オブジェクトとWorksheet
オブジェクトの型を判別しています。TypeName
関数は、オブジェクトの型名も正確に返します。
使用場面と注意点
-
デバッグの際に変数の型を確認する手段として使用できます。
-
オブジェクトの型を条件によって分岐処理する場合に役立ちます。例えば、特定の型に対してのみ処理を行いたい場合に、
TypeName
関数で型をチェックしてから処理を進めることができます。 -
返される文字列はVBAの型名に依存します。型が一致しない場合や、型が特殊な場合には、それに応じた型名が返されます。
応用例 - 型による処理の分岐
Sub TypeBasedProcessing(input As Variant)
Dim typeName As String
typeName = TypeName(input)
Select Case typeName
Case "String"
MsgBox "文字列が入力されました: " & input
Case "Integer", "Long", "Double"
MsgBox "数値が入力されました: " & input
Case Else
MsgBox "未対応の型です: " & typeName
End Select
End Sub
この例では、TypeName
関数を用いて入力された変数の型に応じた処理を行っています。文字列が入力された場合と数値が入力された場合で異なるメッセージを表示し、未対応の型の場合にはその型名を表示します。
まとめ
TypeName
関数は、変数やオブジェクトの型を簡単に取得できる便利な関数です。特に、コードのデバッグや異なる型に対する処理を柔軟に行う際に重宝します。型情報を文字列で確認できるため、プログラムの動作確認やバグ修正時に有効です。