VBScript 有二種不同的程序:Sub 程序和 Function 程序。
Sub 程序
Sub 程序是指一串 VBScript 陳述式,由 Sub 和 End Sub 陳述式所包圍,但執行後不傳回值。
Sub 程序可以代入引數(由呼叫的程序傳過來的常數、變數、或運算式)。若 Sub 程序不含任何引數,則須在 Sub 陳述式加上一個空括弧 ()。
下面的 Sub 程序使用二個內建的 VBScript 函數, MsgBox 和 InputBox,來顯示一些資訊給使用者。再根據這些資訊來計算結果。這些計算是使用一個 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 陳述式,
由 Function 和 End Function 陳述式所包圍。
Function 程序與 Sub 程序相似,但會於執行後傳回值。
Function 程序可以帶入引數(由呼叫的程序傳過來的常數、變數、或運算式)。
Function 程序與 Sub 程序相似,但會於執行後傳回值。
Function 程序可以帶入引數(由呼叫的程序傳過來的常數、變數、或運算式)。
若 Function 程序不含任何引數,則需在 Function 陳述式加上一個空括弧 ()。
Function 把傳回值指定給程序中的一個或多個陳述式。一般 Function 的傳回型態是 Variant。
在下例中,Celsius 函數是把華氏的度數轉成攝氏。當 ConvertTemp Sub 程序呼叫此函數時,把帶有引數值的變數傳給函數。而計算後的結果會傳回給呼叫的程序,並顯示在訊息方塊中。
從程序傳入或獲得資料
資料透過引數傳給程序的。引數可當成是預留給傳送到程序的資料位置。可以用任何有效的變數名稱來作為參數命名。無論是建立一個 Sub 陳述式或 Function 陳述式,都必須在程序名稱之後加上括弧。任何在括弧內的引數都是以逗號來隔開的。例如,以下例子的 fDegrees 是預留給要傳到 Celsius 函數轉換的值:
要從程序中獲得資料,就得使用 Function。Function 程序可傳回值;Sub 程序不傳回值。
在程式碼中使用 Sub 和 Function 程序
在程式碼中,Function 必須使用於變數指定的右邊或放在運算式中。例如:
在下例中,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 程序不傳回值。
在程式碼中使用 Sub 和 Function 程序
在程式碼中,Function 必須使用於變數指定的右邊或放在運算式中。例如:
Temp = Celsius(fDegrees)
或
MsgBox "The Celsius temperature is " & Celsius(fDegrees) & " degrees."
從另一個程序中呼叫 Sub 程序時,您只要在程序名稱加上所需的引數即可,引數須以逗號來隔開。不一定要使用 Call 陳述式,但若您要使用它,引數必須包含於括弧中。下面二種呼叫 MyProc 程式的方法。一個是使用 Call 陳述式的,一個則沒有。而二者所做的事情是完全一樣的。
請注意,當不使用 Call 陳述式呼叫時,括弧要省略。Call MyProc(firstarg, secondarg) MyProc firstarg, secondarg
沒有留言:
張貼留言