VBScript

解決


さくら  2004-11-10 11:22:03  No: 86597  IP: [192.*.*.*]

VBScriptを使用する際に、AddCodeメソッドを実行すると、
関数外のコードが実行されてしまいます。
関数外のコードを無視する方法はありますか?

<例>
MsgBox "こんにちは"
Sub Main()
  MsgBox "こんばんは"
End Sub 

AddCodeメソッドを実行すると、こんにちはと表示されてしまう。

編集 削除
さくら  2004-11-10 12:08:51  No: 86598  IP: [192.*.*.*]

下記の場合、AddCodeした時にHello World!を表示されてしまう。。。
何か情報をお持ちの方がいれば教えてください。

<VBからVBScriptを実行する例>
Private sc As Object

Private Sub Command1_Click()
' 変数を宣言します。
Set sc = CreateObject("ScriptControl")
sc.AllowUI = True
sc.Language = "VBScript"
' スクリプト コントロールにスクリプト コードを追加します。
sc.AddCode "MsgBox ""Hello World!"" : " & _
            "Sub Main : " & _
            "MsgBox ""Hello World!"" : " & _
            "End Sub"
' スクリプト コードを実行します。
sc.Run "Main"

End Sub

編集 削除
Say  2004-11-10 12:52:34  No: 86599  IP: [192.*.*.*]

ここで言う「関数外」はメインルーチンですから、
実行されても不思議はないのでは?
cのように、mainに特別な意味があるわけでもないし。

>関数外のコードを無視する方法はありますか?
単に無視したいだけなら、コメントアウトしてください。

編集 削除
さくら  2004-11-10 17:53:32  No: 86600  IP: [192.*.*.*]

やはり、スクリプトをチェックしてプロシージャ外をコメントアウトするしかないですよね。。。

編集 削除
Say  2004-11-10 22:07:51  No: 86601  IP: [192.*.*.*]

処理量が多いのなら、そういうプログラムを作ればいいのでは?

編集 削除
さくら  2004-11-12 17:32:20  No: 86602  IP: [192.*.*.*]

そうなんですが、Scriptはお客が作成するので
そんまま使用したいんですよね。
エラーになるわけじゃないからそこまでのチェックを入れるかどうか悩んでてて。。。
色々アドバイスありがとうございました。

編集 削除