VBScript

解決


さくら  2004-11-10 20:22:03  No: 86597

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

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

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


さくら  2004-11-10 21:08:51  No: 86598

下記の場合、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 21:52:34  No: 86599

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

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


さくら  2004-11-11 02:53:32  No: 86600

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


Say  2004-11-11 07:07:51  No: 86601

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


さくら  2004-11-13 02:32:20  No: 86602

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加