Function語句
聲明Function過程的名稱、參數以及構成其主體的代碼。
[Public[Default]|Private]Functionname[(
arglist
)]
[statements]
[name=expression]
[ExitFunction]
[statements]
[name=expression]
EndFunction參數
Public
表示Function過程可被所有腳本中的所有其他過程訪問。
Default
只與Class塊中的Public關鍵字一起使用來表示Function過程是類的默認方法。如果在一個類中指定了不止一個Default過程,就有錯誤發生。
Private
表示Function過程只可被聲明它的腳本中的其他過程訪問或者如果函數是一個數據類,那麼Function過程只能被該類中的其他過程訪問。
name
Function的名稱,遵循標準的變量命名規則。
arglist
代表調用時要傳遞給Function過程的參數的變量列表。用逗號隔開多個變量。
statements
在Function過程的主體中執行的任意語句組。
expression
Function的返回值。
arglist參數包含下列語法和部分:
[ByVal|ByRef]varname[()]
參數
ByVal
表示該參數是按值方式傳遞的。
ByRef
表示該參數按引用方式傳遞。
varname
代表參數變量的名稱;遵循標準的變量命名規則。
說明
如沒有顯式指定使用Public或Private,則Function過程默認為公用,即它們對於腳本中的所有其他過程是可見的。 Function中局部變量的值在對過程的調用中不被保留。
不能在任何其他過程(例如,Sub或PropertyGet)中定義Function過程。
使用ExitFunction語句可以從Function過程中立即退出。程序繼續執行調用Function過程的語句之後的語句。可在Function過程的任何位置出現任意個ExitFunction語句。
與Sub過程類似,Function過程是可以獲取參數、執行一系列語句並改變其參數值的獨立過程。與Sub過程的不同之處是:當要使用由函數返回的值時,可以在表達式的右邊使用Function過程,這與內部函數的使用方式一樣,例如Sqr、Cos或Chr。
在表達式中,可以通過使用函數名,並在其後用圓括號給出相應的參數列表來調用Function過程。有關調用Function過程的詳細信息,請參閱Call語句。
警告Function過程可以是遞歸的,即該過程可以調用自身以完成某個給定的任務。但是,遞歸可能會導致堆棧溢出。