過程(procedure):
VBA過程就是完成某個給定任務的代碼的有序組合。就類似於一個有目的性的行為,一個完整的行為就是一個過程。注意“有序”二字。
VBA過程分為Subroutine(子程序)過程和Function(函數)過程,關鍵字為Sub和Function,都可以獲取參數、執行一系列語句、以及癌變其參數值的獨立過程。Sub較Function不同之處,是帶返回值的Sub過程不能用於表達式。(什么意思,是指Sub過程不能像代碼那樣寫在語句里么,還是指不能直接調用Sub過程來調用他的返回值?)
Sub過程:
已經接觸這么多了,就不多說。幾個點:
1、Sub過程的存放位置:模塊。同時Excel中的任一對象也可以保存Sub過程,比如雙擊某一工作表進行過程編寫。只是建議都保存在模塊里,方便查看等操作。
2、Sub過程的聲明。類似聲明變量,Sub過程也有作用域之分,private和public,
格式:
[Private |Public] [Static] Sub 過程名
[語句塊]
End Sub
2.1、 這里的Static是靜態的意思,書上解釋說選擇后,“運行程序的過程中將保存改過程里聲明的本地變量”,有點難懂,意思就是,可在過程中可以聲明本地變量,值不會被沖洗掉。多次調佣后依然是初始定義的值。(大概差不多就是這個意思吧,如有人能解釋,可以回復:-))
2.2、 如果一個過程被聲明為私有過程,則只有本模塊內的過程能使用它,而且不會出現在宏的對話框里;
2.3、 如果想把模塊中的所有過程都設為私有過程,在第一個過程前寫上“Option Private Module”即可
3、如果需要在某個過程中使用另一個過程(注意),可以如下:
a) 直接調用,在過程中輸入過程名和過程的參數(沒有就不用),參數用逗號隔開
b) 在過程名及參數前用Call關鍵字,參數用括號括起來,逗號分開
Call 過程名[(參數1),(參數2),…]
c) 利用Application對象的Run方法,格式:
Application.Run 表示過程名的字符串(因此字符串要用雙引號?)[,參數1,參數2,…]
Function過程
Function過程即是編寫一個函數,即自定義函數。
怎么插入新的Function過程:
編寫完成后的函數可以和自帶函數同樣使用,插入函數里,也有“自定義函數”的選項。
給函數定義變量:就和自帶函數里的參數一樣,我們定義函數時也可以添加參數:
比如一個3個數的平均數函數:
當然,定義的參數還可以為其他類型,如單元格,區域。難一點的請自行研究。