-3
私はOutlookデスクトップアプリケーションを自動化しようとしています。私は、Outlookでさまざまな種類の操作を実行するVBスクリプトファイル(file.vbs)で書かれた異なるサブプロシージャを持っています。コマンドラインからサブプロシージャの1つを呼びたいと思います。それ、どうやったら出来るの?コマンドラインからVBSの関数/サブプロシージャを呼び出す方法は?
私はOutlookデスクトップアプリケーションを自動化しようとしています。私は、Outlookでさまざまな種類の操作を実行するVBスクリプトファイル(file.vbs)で書かれた異なるサブプロシージャを持っています。コマンドラインからサブプロシージャの1つを呼びたいと思います。それ、どうやったら出来るの?コマンドラインからVBSの関数/サブプロシージャを呼び出す方法は?
この例では、functionまたはsubを呼び出し、適切な呼び出しを動的に検出します。コマンドラインでは、呼び出す関数の名前として 'functionToExecute'を、呼び出したいサブルーチンとして 'subToExecute'を指定します。それぞれのサブ機能のためのコマンドラインからVBSを呼び出すための二つの例:VBSスクリプトで
cscript.exe demo.vbs subToExecute
cscript.exe demo.vbs functionToExecute
は、コマンドライン引数からルーチンの名前を取得し、サブルーチンを呼び出すかコールするかどうかを決定機能:VBSコマンドライン処理のための
On Error Resume Next
mySubOrFuncName = WScript.Arguments.Item(0) 'name of the subroutine or function
subCall = "call " & mySubOrFuncName & "()"
Execute subCall
If Err.Number <> 0 Then 'if sub could not be called, take the function call
eval(mySubOrFuncName)
Err.Clear
End If
WScript.Quit
'this is a subroutine you already have
Sub subToExecute
MsgBox "inside a sub"
'do stuff
End Sub
'this is a function you already have
Function functionToExecute
MsgBox "inside a function"
'do stuff
End Function
これは私を助けました。しかし、あなたが言及したように、eval()は私のためには機能しませんでした。 – user8533698
@ user8533698 'Eval()'は完全な文を実行できない条件を評価するので、代わりに 'Execute()'/'ExecuteGlobal()'を使うべきです。また、上の例では、 'a'に不正な文字列が割り当てられているため、構文エラーが発生します。誰にも役立たない不完全な/間違った答えを受け入れないでください。 – Lankymart
は 'a 'への代入文法エラーを修正したばかりです –