VBA オブジェクトや変数の種類を調べる TypeName関数 VarType関数

スポンサーリンク

TypeName【タイプネーム】関数

オブジェクトや変数の種類を調べるには、TypeName【タイプネーム】関数を使用します。

TypeName【タイプネーム】関数の書式と引数の説明

TypeName(VarName)
【戻り値】 文字列型 (String)

  • VarName【バーネーム】(必須)
    種類を判別したい、オブジェクトやバリアント型またはオブジェクト型の変数を指定します。

※引数VarName【バーネーム】にバリアント型の変数を指定した場合は、変数に代入されているデータやオブジェクトの種類を表す文字列を返します。何も代入されていない場合は「Empty【エンプティ】」を返します。
※引数VarName【バーネーム】にオブジェクト型の変数を指定した場合は、変数に代入されているオブジェクトの種類を表す文字列を返します。何も代入されていない場合は「Nothing【ナッシング】」を返します。
※Empty【エンプティ】とは、数値の場合は「0」を表し、文字列の場合は「長さ0の文字列」を表します。
※Nothing【ナッシング】とは、オブジェクト型変数にオブジェクトが格納されていない状態を表します。

変数の種類を表す主な戻り値

文字列内容
Integer整数型
Long長整数型
Single単精度浮遊小数点数型
Double倍精度浮遊小数点数型
Date日付型
String文字列型
Booleanブール型
Errorエラー値
Emptyバリアント型の初期値
Null無効な値

オブジェクトの種類を表す主な戻り値

文字列内容
WorkBookブック
Worksheetシート
Rangeセル
Chartグラフ
TextBoxテキストボックス
ActiveXコントロール
Labelラベル
ActiveXコントロール
Commmand
Button
コマンドボタン
ActiveXコントロール
Objectオブジェクト
UnKnown種類が不明なオブジェクト
Nothingオブジェクト変数の初期化

引数VarName【バーネーム】に配列変数を指定した場合は、戻り値に「()」が付きます。例えば、文字列型の配列変数の場合は「String()」が返ります。

コード例

Sub 種類()
Dim 空 As Variant
Dim 文字 As Variant
Dim 数値 As Variant
Dim 空2 As Object
Dim ブック As Object
Dim セル As Object
文字 = "ExcelVBA"
数値 = 12345
Set ブック = ActiveWorkbook
Set セル = Range("A1")
MsgBox _
"空は" & TypeName(空) & vbCrLf & _
"文字は" & TypeName(文字) & vbCrLf & _
"数値は" & TypeName(数値) & vbCrLf & _
"空2は" & TypeName(空2) & vbCrLf & _
"ブックは" & TypeName(ブック) & vbCrLf & _
"セルは" & TypeName(セル)
End Sub

実行結果


VarType【バ-タイプ】関数

バリアント型変数の内部処理形式を調べるには、VarType【バ-タイプ】関数を使用します。

VarType【バ-タイプ】関数の書式と引数の説明

VarType(varname)
【戻り値】 整数型 (Integer)

  • VarName【バーネーム】(必須)
    任意の変数名を指定します。

バリアント型変数には、すべてのデータ型の値を格納できますが、格納された値に合わせて内部で自動的に型変換が行われ
内部処理形式が決まります。その内部処理形式を調べるのがValType【バータイプ】関数です。

TypeName【タイプネーム】関数は、変数の種類を表す「文字列」を返しますが、VarType【バータイプ】関数は、内部処理形式を表す「整数値」を返します。

VarType関数が返す主な整数値とその内容

定数内容
0vbEmptyEmpty 値 (未初期化)
1vbNullNull 値 (無効な値)
2vbInteger整数型
3vbLong長整数型 (Long)
4vbSingle単精度浮動小数点数型 (Single)
5vbDouble倍精度浮動小数点数型 (Double)
6vbCurrency通貨型 (Currency)
7vbDate日付型 (Date)
8vbString文字列型
9vbObjectオートメーション オブジェクト
10vbErrorエラー型
11vbBooleanブール型 (Boolean)
12vbVariantバリアント型 (Variant) (バリアント型配列にのみ使用)
13vbDataObject非オートメーション オブジェクト
17vbByteバイト型
8192vbArray配列 (Array)

※配列の場合は、他のデータ型を表す整数値との合計値が返されます。例えば、文字列型の配列の場合は、「8(vbString)」+「8192(vbArray)」=「8200」が返されます。


以上で、TypeName【タイプネーム】関数 VarType【バータイプ】関数についての解説を終了します。ありがとうございました。

データ型を操作する関数一覧表

関数名がリンクになっていて
詳細説明ページが開きます
関数名内容
CByte数値や文字列をバイト型に変換
CBool数値や文字列をブール型に変換
CInt数値や文字列を整数型の値に変換
CSng数値や文字列を単精度浮動小数点数型に変換
CDbl数値や文字列を倍精度浮遊小数点数型に変換
CCur数値や文字列を通貨型に変換
CStr数値や日付リテラルを文字列型の値に変換
CLngデータ型を長整数型に変換
CDateデータ型を日付型に変換
Val文字列を数値に変換
IsNumericデータが数値かを判定する
IsDateデータが日付や時刻データかを判定する
IsArray変数が配列変数かを判定する
IsNull値がNullかを判定する
IsEmpty値がEmptyかを判定する
IsObject値がオブジェクトかを判定する
IsError値がエラー値かを判定する
TypeNameオブジェクトや変数の種類を調べる
VarType変数の内部処理形式を調べる

スポンサーリンク

関連記事・広告