VBScript 過(guò)程
在 VBScript 中,過(guò)程被分為兩類(lèi):Sub 過(guò)程和 Function 過(guò)程。
Sub 過(guò)程
Sub 過(guò)程是包含在 Sub 和 End Sub 語(yǔ)句之間的一組 VBScript 語(yǔ)句,執(zhí)行操作但不返回值。Sub 過(guò)程可以使用參數(shù)(由調(diào)用過(guò)程傳遞的常數(shù)、變量或表達(dá)式)。如果 Sub 過(guò)程無(wú)任何參數(shù),則 Sub 語(yǔ)句必須包含空括號(hào) ()。
下面的 Sub 過(guò)程使用兩個(gè)固有的(或內(nèi)置的)VBScript 函數(shù),即 MsgBox 和 InputBox,來(lái)提示用戶輸入信息。然后顯示根據(jù)這些信息計(jì)算的結(jié)果。計(jì)算由使用 VBScript 創(chuàng)建的 Function 過(guò)程完成。此過(guò)程在以下討論之后演示。
Sub ConvertTemp() temp = InputBox("
請(qǐng)輸入華氏溫度。", 1)
MsgBox "
溫度為 " Celsius(temp) "
攝氏度。"
End Sub
Function 過(guò)程
Function 過(guò)程是包含在 Function 和 End Function 語(yǔ)句之間的一組 VBScript 語(yǔ)句。Function 過(guò)程與 Sub 過(guò)程類(lèi)似,但是 Function 過(guò)程可以返回值。Function 過(guò)程可以使用參數(shù)(由調(diào)用過(guò)程傳遞的常數(shù)、變量或表達(dá)式)。如果 Function 過(guò)程無(wú)任何參數(shù),則 Function 語(yǔ)句必須包含空括號(hào) ()。Function 過(guò)程通過(guò)函數(shù)名返回一個(gè)值,這個(gè)值是在過(guò)程的語(yǔ)句中賦給函數(shù)名的。Function 返回值的數(shù)據(jù)類(lèi)型總是 Variant。
在下面的示例中,Celsius 函數(shù)將華氏度換算為攝氏度。Sub 過(guò)程 ConvertTemp 調(diào)用此函數(shù)時(shí),包含參數(shù)值的變量被傳遞給函數(shù)。換算結(jié)果返回到調(diào)用過(guò)程并顯示在消息框中。
Sub ConvertTemp() temp = InputBox("
請(qǐng)輸入華氏溫度。", 1)
MsgBox "
溫度為 " Celsius(temp) "
攝氏度。"
End Sub
Function Celsius(fDegrees)
Celsius = (fDegrees - 32) * 5 / 9
End Function
過(guò)程的數(shù)據(jù)進(jìn)出
給過(guò)程傳遞數(shù)據(jù)的途徑是使用參數(shù)。參數(shù)被作為要傳遞給過(guò)程的數(shù)據(jù)的占位符。參數(shù)名可以是任何有效的變量名。使用 Sub 語(yǔ)句或 Function 語(yǔ)句創(chuàng)建過(guò)程時(shí),過(guò)程名之后必須緊跟括號(hào)。括號(hào)中包含所有參數(shù),參數(shù)間用逗號(hào)分隔。例如,在下面的示例中,fDegrees 是傳遞給 Celsius 函數(shù)的值的占位符:
Function Celsius(fDegrees) Celsius = (fDegrees - 32) * 5 / 9 End Function
要從過(guò)程獲取數(shù)據(jù),必須使用 Function 過(guò)程。請(qǐng)記住,Function 過(guò)程可以返回值;Sub 過(guò)程不返回值。
在代碼中使用 Sub 和 Function 過(guò)程
調(diào)用 Function 過(guò)程時(shí),函數(shù)名必須用在變量賦值語(yǔ)句的右端或表達(dá)式中。例如:
Temp = Celsius(fDegrees)
或
MsgBox "
溫度為 " Celsius(fDegrees) "
攝氏度。"
調(diào)用 Sub 過(guò)程時(shí),只需輸入過(guò)程名及所有參數(shù)值,參數(shù)值之間使用逗號(hào)分隔。不需使用 Call 語(yǔ)句,但如果使用了此語(yǔ)句,則必須將所有參數(shù)包含在括號(hào)之中。
下面的示例顯示了調(diào)用 MyProc 過(guò)程的兩種方式。一種使用 Call 語(yǔ)句;另一種則不使用。兩種方式效果相同。
Call MyProc(firstarg, secondarg) MyProc firstarg, secondarg
請(qǐng)注意當(dāng)不使用 Call 語(yǔ)句進(jìn)行調(diào)用時(shí),括號(hào)被省略。