2012年5月13日日曜日

[VBScript] VarType関数


■構文
VarType(varname)

■説明
変数の内部処理形式を表す整数型 (Integer) の値を返します。
第一引数:変数を指定します。

戻り値
定数内容
vbEmpty0Empty 値 (未初期化)
vbNull1Null 値 (無効な値)
vbInteger2整数型 (Integer)
vbLong3長整数型 (Long)
vbSingle4単精度浮動小数点数型 (Single)
vbDouble5倍精度浮動小数点数型 (Double)
vbCurrency6通貨型 (Currency)
vbDate7日付型 (Date)
vbString8文字列型 (String)
vbObject9オブジェクト
vbError10エラー値
vbBoolean11ブール型 (Boolean)
vbVariant12バリアント型 (Variant) (バリアント型配列にのみ使用)
vbDataObject13非OLE オートメーション オブジェクト
vbDecimal1410 進数型
vbByte17バイト型 (Byte)
vbUserDefinedType36ユーザー定義型を含むバリアント型
vbArray8192配列



■サンプルコード
  1. Option Explicit  
  2.   
  3. Dim temp  
  4. '■Empty値と判定するケース  
  5. Wscript.Echo VarType(temp) '0 宣言した直後はEmptyと判定されます。  
  6.   
  7.   
  8. '■Null値と判定するケース  
  9. temp = Null  
  10. Wscript.Echo VarType(temp) '1 Nullが代入されているとNullと判定されます  
  11.   
  12.   
  13. '■整数,長整数,バイト型と判定するケース  
  14. temp = 32767  
  15. Wscript.Echo VarType(temp) '2  32767まで整数型なので2を返す  
  16. temp = 32768  
  17. Wscript.Echo VarType(temp) '3  32768からは長整数型ので3を返す  
  18. temp = 1  
  19. Wscript.Echo VarType(temp) '2  256の範囲だからと言ってByte型にはなりません  
  20. temp = CByte(temp)  
  21. Wscript.Echo VarType(temp) '17 明示的に型変換するとByte型と判定します  
  22.   
  23.   
  24. '■単精度・倍精度浮動小数点数型と判定するケース  
  25. temp = 1.1  
  26. Wscript.Echo VarType(temp) '5 小数点数は倍精度浮動小数点数型と判定します。  
  27. temp = CSng(temp)  
  28. Wscript.Echo VarType(temp) '4 明示的に型変換すると単精度浮動小数点型と判定します  
  29.   
  30.   
  31. '■日付型と判定するケース  
  32. temp = Dateserial(2000, 1, 1)  
  33. Wscript.Echo VarType(temp) '7 日付、時間関係の値が入っていると日付型と判定します  
  34.   
  35.   
  36. '■文字列型と判定するケース  
  37. temp = "a"  
  38. Wscript.Echo VarType(temp) '8 ダブルクォーテーションで囲んだ文字・文字列は文字列型と判定します  
  39. '改行コードやタブといったものも文字列型と判定されます  
  40. temp = vbCrLf  
  41. Wscript.Echo VarType(temp) '8  
  42. temp = vbTab  
  43. Wscript.Echo VarType(temp) '8  
  44.   
  45. '■オブジェクトと判定するケース  
  46. Set temp = CreateObject("Scripting.Dictionary")  
  47. Wscript.Echo VarType(temp) '9  
  48.   
  49. Set temp = Nothing  
  50. Wscript.Echo VarType(temp) '9 Nothingを代入してもオブジェクトと判定する  
  51.   
  52.   
  53. '■Bool値と判定するケース  
  54. temp = (1 < 5)  
  55. Wscript.Echo VarType(temp) '11 条件式の結果はBool値となります  
  56.   
  57.   
  58. '■バリアント型と判定するケース(バリアント型の配列にのみ使用)  
  59. Dim temp2()  
  60. Wscript.Echo VarType(temp2) '8204 = 12:バリアント型 + 8192:配列  
  61. Redim temp2(1)  
  62. Wscript.Echo VarType(temp2) '8204 = 12:バリアント型 + 8192:配列  
  63. temp2(0) = 123  
  64. Wscript.Echo VarType(temp2) '8204 = 12:バリアント型 + 8192:配列  
  65. temp2(0) = "abc"  
  66. Wscript.Echo VarType(temp2) '8204 = 12:バリアント型 + 8192:配列  
  67. '型を宣言しないので、配列はすべてバリアント型の配列となる  

0 件のコメント: