2018年5月18日金曜日

変数やプロパティの型を知りたい

VarTypeって関数がある。
返り値と定数を比べろってぇモノ。大変不親切である。
まぁ、わりとなんでも融通利かせちゃうVBならこんなもんかと思わなくもない(ぉぃ
でも、ボクは明示的に宣言するのがスキである。あとで大事故にならないように。

そんなわけで、お手軽に調べられるよう、こんなモンをつくって、
標準モジュールに置いておくようにした。


  1. Public Sub VerTypeCheck(ByRef Variable)
  2. Dim VarType_Number
  3. Dim Str_Return As String
  4. Str_Return = ""
  5. VarType_Number = VarType(Variable)
  6. If VarType_Number > vbArray Then
  7. Str_Return = "配列:"
  8. VarType_Number = VarType_Number - vbArray
  9. End If
  10. Select Case VarType_Number
  11. Case vbEmpty
  12. Debug.Print (Str_Return & "Empty:Empty値 (未初期化)")
  13. Case vbNull
  14. Debug.Print (Str_Return & "Null:Null値 (無効な値)")
  15. Case vbInteger
  16. Debug.Print (Str_Return & "Integer:整数型")
  17. Case vbLong
  18. Debug.Print (Str_Return & "Long:長整数型")
  19. Case vbSingle
  20. Debug.Print (Str_Return & "Single:単精度浮動小数点数型")
  21. Case vbDouble
  22. Debug.Print (Str_Return & "Double:倍精度浮動小数点数型")
  23. Case vbCurrency
  24. Debug.Print (Str_Return & "Currency:通貨型")
  25. Case vbDate
  26. Debug.Print (Str_Return & "Date:日付型")
  27. Case vbString
  28. Debug.Print (Str_Return & "String:文字列型")
  29. Case vbObject
  30. Debug.Print (Str_Return & "Object:オートメーション オブジェクト")
  31. Case vbError
  32. Debug.Print (Str_Return & "Error:エラー値")
  33. Case vbBoolean
  34. Debug.Print (Str_Return & "Boolean:ブール型")
  35. Case vbVariant
  36. Debug.Print (Str_Return & "Variant:バリアント型 (バリアント型配列にのみ使用)")
  37. Case vbDataObject
  38. Debug.Print (Str_Return & "DataObject:非OLEオートメーションオブジェクト")
  39. Case vbDecimal
  40. Debug.Print (Str_Return & "Decimal:10進数型")
  41. Case vbByte
  42. Debug.Print (Str_Return & "Byte:バイト型")
  43. Case vbArray
  44. Debug.Print (Str_Return & "Array:配列")
  45. Case Else
  46. Debug.Print (Str_Return & "???:わかんない:" & VarType(Variable))
  47. End Select
  48.  
  49. End Sub
  50.  

VerTypeCheck 変数やプロパティ
とか、
Call VerTypeCheck(変数やプロパティ)
って呼び出してやると、Debugにナニモノかを吐き出してくれる。
仕様上、”Array:配列”が出力されるコトはないんだけど、一応Caseに含ませてある。
やってることは、まぁMSDNでゆってること丸写しなだけ( ゚-゚)~゚

0 件のコメント:

コメントを投稿