- データ型は全てバリアント型
- On Error GoTo は使用できない
As Integer
みたいなデータ型定義を付けられないことになる。エラー処理については、ステップ毎にエラーチェックすることになるので、やはり面倒です。エラーチェックを関数にまとめてもステップ毎に洩れなく確認することには変わりないので、あまり複雑な処理を VBScript でやるのは辛いです。VBScript のデータ型
http://msdn.microsoft.com/ja-jp/library/cc392195.aspx
VBScript では、バリアント型 (Variant) と呼ばれるデータ型のみを使用します。
VBScript でのエラー処理
http://msdn.microsoft.com/ja-jp/library/cc407944.aspx
VBScript で On Error GoTo は使用できません。次の例に示すように、その代わりに On Error Resume Next を使用し、その後、Errors コレクションの Err.Number プロパティと Count プロパティの両方を調べます。
VBScript から Microsoft Access へ接続して、SELECT文を実行するサンプルです。
Option Explicit Function GetNow() Dim Engine, Database, Recordset On Error Resume Next Set Engine = CreateObject("DAO.DBEngine.120") If Err.Number <> 0 Or Engine.Errors.Count > 0 Then WScript.Echo Err.Number & vbTab & Err.Source & vbTab & Err.Description GetNow = False Exit Function End If Set Database = Engine.OpenDatabase("C:\work\SAMPLE1.mdb") If Err.Number <> 0 Or Engine.Errors.Count > 0 Then WScript.Echo Err.Number & vbTab & Err.Source & vbTab & Err.Description GetNow = False Exit Function End If Set Recordset = Database.OpenRecordset("SELECT now") ' システム時刻nowのみ If Err.Number <> 0 Or Engine.Errors.Count > 0 Then WScript.Echo Err.Number & vbTab & Err.Source & vbTab & Err.Description GetNow = False Exit Function End If WScript.Echo Recordset(0) GetNow = True End Function if GetNow then WScript.Quit(0) Else WScript.Echo "異常終了しました。" WScript.Quit(1) End If
実行方法は、
CScript [File Name].vbs