2014年9月3日水曜日

[VBA/VBS] データ型を確認する方法

VBA/VBScript において、変数等のデータ型を確認する方法です。

■ Is 関数を使う

Is 関数を使って、データの状態を確認できますが、これでは(例)数値であるが、Integer か Double といった具体的なデータ型までは分かりません。関数の結果はブール値です。
  • IsArray(配列)
  • IsDate(日付または時刻)
  • IsEmpty(初期化の有無)
  • IsNull(Null 値)
  • IsNumeric(数値)
  • IsObject(オブジェクト)
VBScript の関数
http://msdn.microsoft.com/ja-jp/library/cc392480.aspx

■ TypeName 関数を使う

これが最も具体的なデータ型を確認できます。データ型を表す文字列の名称が得られます。

(例)Debug.Print TypeName("ABC")
(結果)String


TypeName 関数
http://msdn.microsoft.com/ja-jp/library/cc392344.aspx

■ VarType 関数を使う


TypeName と同等ですが、
  • 結果が VbVarType 列挙体 で得られる。
  • Object 型の区別が具体的でない (VbVarType.vbObject という1括りになる)
という違いがあります。データ型によって判定&分岐するならば、これが使いやすいと思います。

(例)Debug.Print VarType("ABC")
(結果)8 (= VbVarType.vbString)


VarType 関数
http://msdn.microsoft.com/ja-jp/library/cc392346.aspx