過(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ò)程的參數(shù)有兩種傳遞方式:按值傳遞(ByVal)和按地址傳遞(ByRef)。如下例:
Sub password (ByVal x as integer, ByRef y as integer)
If y=100 then y=x+y else y=x-y
x=x+100
End sub
Sub call_password ()
Dim x1 as integer
Dim y1 as integer
x1=12
y1=100
Call password (x1,y1) ‘調(diào)用過(guò)程方式:1. Call 過(guò)程名(參數(shù)1, 參數(shù)2…) ; 2. 過(guò)程名參數(shù)1, 參數(shù)2…
debug.print x1,y1 ‘結(jié)果是12、112,y1按地址傳遞改變了值,而x1按值傳遞,未改變?cè)?/span>
End sub
函數(shù)實(shí)際是實(shí)現(xiàn)一種映射,它通過(guò)一定的映射規(guī)則,完成運(yùn)算并返回結(jié)果。參數(shù)傳遞也兩種:按值傳遞(ByVal)和按地址傳遞(ByRef)。如下例:
Function password(ByVal x as integer, byref y as integer) as boolean
If y=100 then y=x+y else y=x-y
x=x+100
if y=150 then password=true else password=false
End Function
Sub call_password ()
Dim x1 as integer
Dim y1 as integer
x1=12
y1=100
if password then ‘調(diào)用函數(shù):1. 作為一個(gè)表達(dá)式放在=右端 ; 2. 作為參數(shù)使用
debug.print x1
end if
End sub
聯(lián)系客服