2016-12-02 8 views
0

変数がVBScriptの変数に格納されている関数を実行することはできますか? 例えば:変数を変数に格納して実行する

Set fun = "Sub fun" & 
      " MsgBox 1" & 
      "End Sub" 

は、変数funは、関数定義を持っているので、何らかの形でevalのか、何か他のものを使用してこの機能を実行することが可能になりましたか?

+0

ヘルプで 'eval'を調べると、下部に関連する関数が表示されます。それを試してみてください。 –

+0

Executeステートメントだと思います。 – sauram1234

+0

'Call ExecuteGlobal(" sub fun() "&vbCrLf" msgbox 1 "&vbCrLf&" end sub ")'を使用します。それは動的に 'fun()'プロシージャを作成しますが、後でそれを呼び出す必要があります。 – Lankymart

答えて

2

ExecuteGlobal()を使用すると可能です。

Dim cmd : cmd = "Sub fun()" & vbCrLf & "MsgBox 1" & vbCrLf & "End Sub" 
'Call ExecuteGlobal() to add the fun() procedure definition into the global scope. 
Call ExecuteGlobal(cmd) 
'Call the procedure now it's defined. 
Call fun() 

注:使用状況によっては、不要なコードを挿入することは可能かもしれないとしてExecuteGlobal()ステートメントを構築するために使用される任意の入力をサニタイズするのが賢明だろう。

関連する問題