過(guò)程是構(gòu)成程序的一個(gè)模塊,往往用來(lái)完成一個(gè)相對(duì)獨(dú)立的功能。過(guò)程可以使程序更清晰、更具結(jié)構(gòu)性。VBA具有四種過(guò)程:Sub過(guò)程、Function函數(shù)、Property屬性過(guò)程和Event事件過(guò)程。
一.Sub過(guò)程
Sub過(guò)程的參數(shù)有兩種傳遞方式:按值傳遞(ByVal)和按地址傳遞(ByRef)。如下例:
Subpassword(ByValxasinteger,ByRefyasinteger)
Ify=100theny=x+yelsey=x-y
x=x+100
Endsub
Subcall_password()
Dimx1asinteger
Dimy1asinteger
x1=12
y1=100
Callpassword(x1,y1)‘調(diào)用過(guò)程方式:1.Call過(guò)程名(參數(shù)1,參數(shù)2…);2.過(guò)程名參數(shù)1,參數(shù)2…
debug.printx1,y1‘結(jié)果是12、112,y1按地址傳遞改變了值,而x1按值傳遞,未改變?cè)?br />Endsub
二.Function函數(shù)
函數(shù)實(shí)際是實(shí)現(xiàn)一種映射,它通過(guò)一定的映射規(guī)則,完成運(yùn)算并返回結(jié)果。參數(shù)傳遞也兩種:按值傳遞(ByVal)和按地址傳遞(ByRef)。如下例:
Functionpassword(ByValxasinteger,byrefyasinteger)asboolean
Ify=100theny=x+yelsey=x-y
x=x+100
ify=150thenpassword=trueelsepassword=false
EndFunction
Subcall_password()
Dimx1asinteger
Dimy1asinteger
x1=12
y1=100
ifpasswordthen‘調(diào)用函數(shù):1.作為一個(gè)表達(dá)式放在=右端;2.作為參數(shù)使用
debug.printx1
endif
Endsub
三.Property屬性過(guò)程和Event事件過(guò)程
這是VB在對(duì)象功能上添加的兩個(gè)過(guò)程,與對(duì)象特征密切相關(guān),也是VBA比較重要組成,技術(shù)比較復(fù)雜,可以參考相關(guān)書(shū)籍。