Microsoft® Visual Basic® Scripting Edition
VBScript 程序
 VBScript 教學 
 上一頁 | 下一頁 

 

程序的種類:
VBScript 有二種不同的程序:Sub 程序和 Function 程序。
Sub 程序
一個 Sub 程序是指一連串 VBScript 陳述式,它由 SubEnd Sub 陳述式所包圍,但執行後不傳回值。Sub 程序可以代入引數(由呼叫的程序傳過來的常數、變數、或運算式)。若 Sub 程序不含任何引數,則須在 Sub 陳述式加上一個空括弧 ()。

下面的 Sub 程序使用二個內建的 VBScript 函數, MsgBoxInputBox,來顯示一些資訊給使用者。再根據這些資訊來計算結果。這些計算是使用一個 VBScript 的 Function 程序來完成的。在接下來的討論之後,會列出這個 Function 程序。

 Sub ConvertTemp()
    temp = InputBox("Please enter the temperature in degrees F.", 1)
    MsgBox "The temperature is " & Celsius(temp) & " degrees C."
 End Sub
Function 程序
一個 Function 程序是指一連串 VBScript 陳述式,它由 FunctionEnd Function 陳述式所包圍。Function 程序與 Sub 程序相似,但它會於執行後傳回值。Function 程序可以代入引數(由呼叫的程序傳過來的常數、變數、或運算式)。若 Function 程序不含任何引數,則需在 Function 陳述式加上一個空括弧 ()。Function 把傳回值指定給程序中的一個或多個陳述式。一般 Function 的傳回型態是 Variant

在下面的例子中,Celsius 函數是把華氏的度數轉成攝氏。當 ConvertTemp Sub 程序呼叫此函數時,把帶有引數值的變數傳給函數。而計算後的結果會傳回給呼叫的程序,並顯示在訊息方塊中。

 Sub ConvertTemp()
     temp = InputBox("Please enter the temperature in degrees F.", 1)
     MsgBox "The temperature is " & Celsius(temp) & " degrees C."
 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 程序不傳回值。
在程式碼中使用 SubFunction 程序
在程式碼中,Function 必須使用於變數指定的右邊或放在運算式中。例如:

 Temp = Celsius(fDegrees)
 MsgBox "The Celsius temperature is " & Celsius(fDegrees) & " degrees."

從另一個程序中呼叫 Sub 程序時,您只要在程序名稱加上所需的引數即可,引數須以逗號來隔開。不一定要使用 Call 陳述式,但若您要使用它,您必須把引數包含於括弧中。

下面為二種呼叫 MyProc 程式的方法。一個是使用 Call 陳述式的,一個則沒有。而二者所做的事情是完全一樣的。

 Call MyProc(firstarg, secondarg)
 MyProc firstarg, secondarg
請注意,當不使用 Call 陳述式呼叫時,括弧要省略。