您目前已離線,請等候您的網際網路重新連線

HOWTO:使用 Script 控制項呼叫函式

本文曾發行於 CHT184740
結論
本文件提供 Script 控制項的範例程式碼,展示從 Visual Basic 呼叫指令碼函式的各種方法。
其他相關資訊
重要:Microsoft 僅為了說明用途提供程式設計範例,並不提供明示或暗示的保證,其中包括 (但不限於) 適售性和/或適合某特定用途之默示擔保責任。本文件假設您熟悉示範的程式語言以及用來建立和偵錯程序的工具。

Script 控制項可以裝載 VBScript、JavaScript 和任何其他相容的指令碼語言,如此您的使用者便可透過和用 VBScript 或 JavaScript 來為網頁提供額外功能的類似方式,為您的應用程式撰寫指令碼。

下列 Microsoft Knowledge Base 中的文件描述如何取得 Script 控制項:
184739:INFO:Where to Obtain the Script Control

Script 控制項提供四種方法來呼叫 Sub 和 Function 指令碼常式:
  • Eval: 評估文字運算式。
  • Run: 執行具名 Sub 或 Function。
  • Execute: 執行指令碼陳述式。
  • 如同 Module 物件的方法。

Eval



呼叫慣例為:
Result = ScriptControl.Eval("某個文字運算式")
您可以用這個方法來呼叫內部指令碼函式以及使用者函式。函式引數會被當作運算式文字中的常值來傳遞,且可以使用以硬式編碼或串連變數的方式。

注意:這個方法無法用來呼叫副程式。

Run



呼叫慣例為:
Result = ScriptControl.Run("名稱", arg1, arg2, ... argn)
您可使用這個方法來呼叫副程式,在該種情況下,傳回的「Result」是空的,而您可以使用另一種呼叫慣例來忽略傳回結果:
ScriptControl.Run "名稱", arg1, arg2, ... argn
注意:「名稱」是 Sub 或 Function 的名稱,您可根據所用的 Sub 或 Function 來決定是否要選用 arg1 ... argn。

Execute



呼叫慣例為:
ScriptControl.Execute "陳述式文字"
這個方法可讓您呼叫任何內建的陳述式或 Sub 常式。您也可以用它來呼叫函式,但傳回結果會被捨棄。

Module 方法



呼叫慣例為:
Result = ScriptControl.Modules(modulename).functionname(arg1, arg2, ...)ScriptControl.Modules(modulename).subname arg1, arg2, ...

預設的模組會在 GlobalModule 常數中提供,例如:
Result = ScriptControl.Modules(GlobalModule).MyFunction(5)ScriptControl.Modules(GlobalModule).MySub 5, "A"

如需關於 ScriptControl 模組的詳細資訊,請參閱 Microsoft Knowledge Base 中的下列文件:
184745:HOWTO:Use Script Control Modules and Procedures Collections

範例



  1. 在 Visual Basic 中建立一個新專案。依預設值,會建立 Form1。
  2. 按一下 [Project] 功能表上的 [Components],然後選取 [Microsoft Script Control 1.0] 核取方塊。
  3. 在表單上加入 Script 控制項 (ScriptControl1)、文字方塊 (Text1) 和命令按鈕 (Command1)。將文字方塊的 MultiLine 屬性設定為 True。
  4. 將下列程式碼加入 Form1:
    Private Sub Command1_Click()With ScriptControl1' Set script language (VBScript is the default)..Language = "VBScript"' Set UI interaction (TRUE is the default)..AllowUI = True' Copy the script to the control..AddCode Text1.Text' Demonstrate the Eval method.Debug.Print .Eval("AddTwo(5,7)")' Demonstrate the Run method both with and without return values..Run "Hello", "Jane Doe"Debug.Print .Run("Hello", "James Smith").Run "AddTwo", 4, 6Debug.Print .Run("AddTwo", 7, 8)' Demonstrate the ExecuteStatement method..ExecuteStatement "Hello ""Sue Smith""".ExecuteStatement "AddTwo 9,18".ExecuteStatement "MsgBox CStr(AddTwo(3,8))".Modules(GlobalModule).Hello "Jane Doe"Dim oMod As ObjectSet oMod = .Modules(GlobalModule)Debug.Print oMod.AddTwo 12, 24Set oMod = NothingEnd WithEnd Sub
  5. 執行 Form1,然後開啟 [Debug] 視窗。
  6. 在文字方塊中輸入下列指令碼:
    Sub Hello(YourName) MsgBox "Hello " & YourNameEnd SubFunction AddTwo(X1, X2) AddTwo = X1 + X2End Function
  7. 按一下 CommandButton。

    注意:下列兩個陳述式不會產生輸出,因為函式傳回值會遺失,而程式碼無法透過任何其他方法 (如全域變數或訊息方塊) 來輸出結果:
    .Run "AddTwo", 4, 6.ExecuteStatement "AddTwo 9,18"
参考
如需取得 Script 控制項的詳細資訊,請參閱 Microsoft Knowledge Base 中的下列文件:
184739:INFO:Where to Obtain the Script Control

(c) Microsoft Corporation 1998,版權所有。
本文件提供者:Malcolm Stewart,Microsoft Corporation


本文件是根據 Microsoft Knowledgebase 文件編號 Q184740 翻譯的. 若要參考原始英文文件內容, 請至以下網址:

kbVBA500 kbVBp500 kbNoKeyWord kbVBp600 kbScript kbCtrl
內容

文章識別碼:184740 - 最後檢閱時間:10/15/2003 18:35:00 - 修訂: 1.0

  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 6.0 Enterprise Edition
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
  • Microsoft Visual Basic for Applications 5.0
  • kbhowto KB184740
意見反應