VBScript 過程
在 VBScript 中,過程被分為兩類:子程序和 函數程序。
子程序
Sub 過程是包含在 Sub 和 End Sub 語句之間的一組 VBScript 語句,執行操作但不傳回值。Sub 過程可以使用參數(由調用過程傳遞的常數、變數或運算式)。如果 Sub 過程無任何參數,則 Sub 語句必須包含空括弧 ()。
下面的 Sub 過程使用兩個固有的(或內建的)VBScript 函數,即 MsgBox 和 InputBox,來提示使用者輸入資訊。然後顯示根據這些資訊計算的結果。計算由使用 VBScript 建立的 Function 過程完成。此過程在以下討論之後示範。
Sub ConvertTemp() temp = InputBox("請輸入華氏溫度。", 1) MsgBox "溫度為 " & Celsius(temp) & " 攝氏度。" End Sub
函數程序
Function 過程是包含在 Function 和 End Function 語句之間的一組 VBScript 語句。Function 過程與 Sub 過程類似,但是 Function 過程可以傳回值。Function 過程可以使用參數(由調用過程傳遞的常數、變數或運算式)。如果 Function 過程無任何參數,則 Function 語句必須包含空括弧 ()。Function 過程通過函數名返回一個值,這個值是在過程的語句中賦給函數名的。Function 傳回值的資料類型總是 Variant。
在下面的樣本中,Celsius 函數將華氏度換算為攝氏度。Sub 過程 ConvertTemp 調用此函數時,包含參數值的變數被傳遞給函數。換算結果返回到調用過程並顯示在訊息框中。
Sub ConvertTemp() temp = InputBox("請輸入華氏溫度。", 1) MsgBox "溫度為 " & Celsius(temp) & " 攝氏度。" End Sub Function Celsius(fDegrees) Celsius = (fDegrees - 32) * 5 / 9 End Function
過程的資料進出
給過程傳遞資料的途徑是使用參數。參數被作為要傳遞給過程的資料的預留位置。參數名可以是任何有效變數名。使用 Sub 語句或 Function 語句建立過程時,過程名之後必須緊跟括弧。括弧中包含所有參數,參數間用逗號分隔。例如,在下面的樣本中,fDegrees 是傳遞給 Celsius 函數的值的預留位置:
Function Celsius(fDegrees) Celsius = (fDegrees - 32) * 5 / 9 End Function
要從過程擷取資料,必須使用 Function 過程。請記住,Function 過程可以傳回值;Sub 過程不傳回值。
在代碼中使用 Sub 和 函數程序
調用 Function 過程時,函數名必須用在變數指派陳述式的右端或運算式中。例如:
Temp = Celsius(fDegrees)
或
MsgBox "溫度為 " & Celsius(fDegrees) & " 攝氏度。"
調用 Sub 過程時,只需輸入過程名及所有參數值,參數值之間使用逗號分隔。不需使用 Call 語句,但如果使用了此語句,則必須將所有參數包含在括弧之中。
下面的樣本顯示了調用 MyProc 過程的兩種方式。一種使用 Call 語句;另一種則不使用。兩種方式效果相同。
Call MyProc(firstarg, secondarg) MyProc firstarg, secondarg
請注意當不使用 Call 語句進行調用時,括弧被省略。