概要

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関数は、変数やオブジェクトの型を簡単に取得できる便利な関数です。特に、コードのデバッグや異なる型に対する処理を柔軟に行う際に重宝します。型情報を文字列で確認できるため、プログラムの動作確認やバグ修正時に有効です。