第九章
一、Sub過程
(一)建立Sub過程
通用Sub過程的結(jié)構(gòu)與前面多次見過的事件過程的結(jié)構(gòu)類似。一般格式如下:[Static][Private][Public]Sub過程名[(參數(shù)表列)]。
語句塊
[Exit Sub]
[語句塊]
End Sub
(二)調(diào)用Sub過程
調(diào)用引起過程的執(zhí)行。也就是說,要執(zhí)行一個過程,必須調(diào)用該過程。
Sub過程的調(diào)用有兩種方式,一種是把過程的名字放在一個Call語句中,一種是把過程名作為一個語句來使用。
1.用Call語句調(diào)用Sub過程
格式:Call過程名[(實際參數(shù))]
2.把過程名作為一個語句來使用
在調(diào)用Sub過程時,如果省略關(guān)鍵字Call,就成為調(diào)用Sub過程的第二種方式。與第一種方式相比,它有兩點不同:
(1)去掉關(guān)鍵字Call;
(2)去掉“實際參數(shù)”的括號。
(三)通用過程與事件過程
[Private|Public]Sub控件名事件名(參數(shù)表) 語句組End Sub
窗體事件過程的一般格式為:
[Private|Public]Sub Form事件名(參數(shù)表) 語句組End Sub
二、Function過程
(一)建立Function過程
Function過程定義的格式如下:[Static][Private][Public]Function過程名[(參數(shù)表列)][As類型] [語句塊]
[過程名=表達式] [Exit Function] [語句塊] End Function
(二)調(diào)用Function過程
Function過程的調(diào)用比較簡單,因為可以像使用Visual Basic內(nèi)部函數(shù)一樣來調(diào)用Function過程。實際上,由于Function過程能返回一個值,因此完全可以把它看成是一個函數(shù),它與內(nèi)部函數(shù)(如Sqr、Str$、Chr$等)沒有什么區(qū)別,只不過內(nèi)部函數(shù)由語言系統(tǒng)提供,而Function過程由用戶自己定義。
三、參數(shù)傳送
在Visual Basic中,通常把形式參數(shù)叫做“參數(shù)”,而把實際參數(shù)叫做“自變量”。
(一)形參與實參
Examda提示: 形參是在Sub、Function過程的定義中出現(xiàn)的變量名,實參則是在調(diào)用Sub或Function過程時傳送給Sub或Function過程的常數(shù)、變量、表達式或數(shù)組。在Visual Basic中,可以通過兩種方式傳送參數(shù),即按位置傳送和指名傳送。
(二)引用
在Visual Basic中,參數(shù)通過兩種方式傳送,即傳地址和傳值,其中傳地址習(xí)慣上稱為引用。在默認情況下,變量(簡單變量、數(shù)組或數(shù)組元素以及記錄)都是通過“引用”傳送給Sub或Function過程。在這種情況下,可以通過改變過程中相應(yīng)的參數(shù)來改變該變量的值。這意味著,當通過引用來傳送實參時,可以改變傳送給過程的變量的值。
(三)傳值
傳值就是通過值傳送實際參數(shù),即傳送實參的值而不是傳送它的地址。在這種情況下,系統(tǒng)把需要傳送的變量復(fù)制到一個臨時單元中,然后把該臨時單元的地址傳送給被調(diào)用的通用過程。由于通用過程沒有訪問變量(實參)的原始地址,因而不會改變原來變量的值,所有的變化都是在變量的副本上進行的。
在Visual Basic中,傳值方式通過關(guān)鍵字ByVal來實現(xiàn)。也就是說,在定義通用過程時,如果形參前面的關(guān)鍵字ByVal,則該參數(shù)用傳值方式傳送,否則用引用(即傳地址)方式傳送。
(四)數(shù)組參數(shù)的傳送
Visual Basic允許把數(shù)組作為實參傳送到過程中。
用數(shù)組作為過程的參數(shù)時,應(yīng)在數(shù)組名的后面加上一對括號,以免與普通變量相混淆。
四、可選參數(shù)與可變參數(shù)
Visual Basic6.0提供了十分靈活和安全的參數(shù)傳送方式,允許使用可選參數(shù)和可變參數(shù)。在調(diào)用一個過程時,可以向過程傳送可選的參數(shù)或者任意數(shù)量的參數(shù)。
五、對象參數(shù)
對象作為參數(shù)與用其他數(shù)據(jù)類型作為參數(shù)的過程沒有什么區(qū)別,其格式為:Sub過程名(形參表) 語句塊 [Exit Sub] ……End Sub。
“形參表”中形參的類型通常為Control或Form.注意,在調(diào)用含有對象的過程時,對象只能通過傳地址方式傳送。因此在定義過程時,不能在其參數(shù)前加關(guān)鍵字ByVal。
六、局部內(nèi)存分配
有時候,在過程結(jié)束時,可能不希望失去保存在局部變量中的值。如果把變量聲明為全局變量或模塊級變量,則可解決這個問題。但如果聲明的變量只在一個過程中使用,則這種方法并不好。為此,Visual Basic提供了一個Static語句,其格式如下:
Static變量表
其中“變量表”的格式如下:
變量[()][As類型][,變量[()][As類型]]……
七、Shell函數(shù)
Shell函數(shù)的格式如下:
Shell(命令字符串[,窗口類型])
編輯推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |