返り値と定数を比べろってぇモノ。大変不親切である。
まぁ、わりとなんでも融通利かせちゃうVBならこんなもんかと思わなくもない(ぉぃ
でも、ボクは明示的に宣言するのがスキである。あとで大事故にならないように。
そんなわけで、お手軽に調べられるよう、こんなモンをつくって、
標準モジュールに置いておくようにした。
- Public Sub VerTypeCheck(ByRef Variable)
- Dim VarType_Number
- Dim Str_Return As String
- Str_Return = ""
- VarType_Number = VarType(Variable)
- If VarType_Number > vbArray Then
- Str_Return = "配列:"
- VarType_Number = VarType_Number - vbArray
- End If
- Select Case VarType_Number
- Case vbEmpty
- Debug.Print (Str_Return & "Empty:Empty値 (未初期化)")
- Case vbNull
- Debug.Print (Str_Return & "Null:Null値 (無効な値)")
- Case vbInteger
- Debug.Print (Str_Return & "Integer:整数型")
- Case vbLong
- Debug.Print (Str_Return & "Long:長整数型")
- Case vbSingle
- Debug.Print (Str_Return & "Single:単精度浮動小数点数型")
- Case vbDouble
- Debug.Print (Str_Return & "Double:倍精度浮動小数点数型")
- Case vbCurrency
- Debug.Print (Str_Return & "Currency:通貨型")
- Case vbDate
- Debug.Print (Str_Return & "Date:日付型")
- Case vbString
- Debug.Print (Str_Return & "String:文字列型")
- Case vbObject
- Debug.Print (Str_Return & "Object:オートメーション オブジェクト")
- Case vbError
- Debug.Print (Str_Return & "Error:エラー値")
- Case vbBoolean
- Debug.Print (Str_Return & "Boolean:ブール型")
- Case vbVariant
- Debug.Print (Str_Return & "Variant:バリアント型 (バリアント型配列にのみ使用)")
- Case vbDataObject
- Debug.Print (Str_Return & "DataObject:非OLEオートメーションオブジェクト")
- Case vbDecimal
- Debug.Print (Str_Return & "Decimal:10進数型")
- Case vbByte
- Debug.Print (Str_Return & "Byte:バイト型")
- Case vbArray
- Debug.Print (Str_Return & "Array:配列")
- Case Else
- Debug.Print (Str_Return & "???:わかんない:" & VarType(Variable))
- End Select
- End Sub
VerTypeCheck 変数やプロパティ
とか、
Call VerTypeCheck(変数やプロパティ)
って呼び出してやると、Debugにナニモノかを吐き出してくれる。
仕様上、”Array:配列”が出力されるコトはないんだけど、一応Caseに含ませてある。
やってることは、まぁMSDNでゆってること丸写しなだけ( ゚-゚)~゚
0 件のコメント:
コメントを投稿