|
Microsoft® Visual Basic® Scripting Edition Sub 語句 |
語言參考 版本 1 |
聲明 Sub 過程的名稱、參數(shù)以及構(gòu)成其主體的代碼。
[Public | Private] Sub name [(arglist)]
[statements]
[Exit Sub]
[statements]
End SubSub 語句的語法包含以下部分:
部分 描述 Public 表示 Sub 過程可被所有 Script 中的所有其他過程訪問。 Private 表示 Sub 過程只可被聲明該過程的 Script 中的其他過程訪問。 name Sub 的名稱,遵循標(biāo)準(zhǔn)變量命名約定。 arglist 代表在調(diào)用時(shí)要傳遞給 Sub 過程的參數(shù)的變量列表。用逗號(hào)隔開多個(gè)變量。 statements 在 Sub 過程主體內(nèi)所執(zhí)行的任何語句組。 arglist 參數(shù)包含下列語法和部分:
[ByVal | ByVal] varname[( )]
部分 描述 ByVal 表示該參數(shù)按值傳遞。 ByRef 表示該參數(shù)按引用傳遞。 varname 代表參數(shù)的變量名稱,遵循標(biāo)準(zhǔn)變量命名約定。
如沒有顯式地指定使用 Public 或 Private,則 Sub 過程默認(rèn)為公用,即它們對(duì)于 Script 中的所有其他過程都是可見的。Sub 過程中局部變量的值在調(diào)用過程中不被保留。所有可執(zhí)行代碼必須包含于過程中。不能在另一個(gè) Sub 或 Function 過程中定義一個(gè) Sub 過程。
使用 Exit Sub 語句可以立即從 Sub 過程中退出。程序繼續(xù)執(zhí)行調(diào)用 Sub 過程的語句之后的語句?梢栽 Sub 過程中任意位置出現(xiàn)任意個(gè) Exit Sub 語句。
與 Function 過程相似之處是:Sub 過程是一個(gè)可以獲取參數(shù),執(zhí)行一系列語句以及可改變其參數(shù)的值的獨(dú)立過程。而與 Function 過程不同之處是:Function 過程可以返回值,而 Sub 過程不能用于表達(dá)式中。
可以使用過程名并跟隨相應(yīng)的參數(shù)列表來調(diào)用 Sub 過程。關(guān)于如何調(diào)用 Sub 過程的詳細(xì)說明信息,請(qǐng)參閱 Call 語句。
在 Sub 過程中使用的變量分為兩類:一類是在過程內(nèi)顯式聲明的,另一類則不是。在過程內(nèi)顯式聲明的變量(使用 Dim 或等效方法)總是局部變量。對(duì)于那些沒有在過程中顯式聲明的變量也是局部的,除非在該過程外更高級(jí)別的位置顯式地聲明它們。
小心 Sub 過程可以是遞歸的,即該過程可以調(diào)用自己來完成某個(gè)給定的任務(wù)。但是遞歸可能會(huì)導(dǎo)致堆棧溢出。
小心 過程可以使用沒有在過程內(nèi)顯式聲明的變量,但只要有任何 script 級(jí)定義的名稱與之同名,就會(huì)產(chǎn)生名稱沖突。如果過程中引用的未聲明的變量與其他的過程、常數(shù)或變量的名稱相同,則會(huì)認(rèn)為過程引用的是 Script 級(jí)的名稱。顯式聲明變量可以避免這類沖突,使用 Option Explicit 語句可強(qiáng)制顯式聲明變量。