VBA過程―子程式與函式(轉)
過程,就是執行一個或多個給定任務的集合。又分為兩種型別:子程式與函式。其兩者之間的主要區別在於,函式會返回一個值而子程式不會返回值。
1、子程式。子程式是一個程式中可執行的最小部份,其語法為:
[Private | Public | Friend] [Static] Sub name [(arglist)] [statements][Exit Sub][statements]End Sub
Sub 語句的語法包含下面部分:
部分 描述
Public 可選的。表示所有模組的所有其它過程都可訪問這個 Sub 過程。 如果在包含 Option Private 的模組中使用,則這個過程在該工程外是不可使用的。
Private 可選的。表示只有在包含其宣告的模組中的其它過程可以訪問該 Sub 過程。
Friend 可選的。只能在類模組中使用。表示該 Sub 過程在整個工程中都是可見的,但對物件例項的控制者是不可見的。
Static 可選的。表示在呼叫之間保留 Sub 過程的區域性變數的值。Static 屬性對在 Sub 外宣告的變數不會產生影響,即使過程中也使用了這些變數。
name 必需的。Sub 的名稱;遵循標準的變數命名約定。
arglist 可選的。代表在呼叫時要傳遞給 Sub 過程的引數的變數列表。多個變數則用逗號隔開。
statements 可選的。Sub 過程中所執行的任何語句組。
其中的 arglist 引數的語法以及語法各個部分如下:
[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type] [= defaultvalue]
部分 描述
Optional 可選的。表示引數不是必需的關鍵字。如果使用了該選項,則 arglist 中的後續引數都必須是可選的,而且必須都使用 Optional 關鍵字宣告。如果使用了 ParamArray,則任何引數都不能使用 Optional。
ByVal 可選的。表示該引數按值傳遞。
ByRef 可選的。表示該引數按地址傳遞。ByRef 是 Visual Basic 的預設選項。
ParamArray 可選的。只用於 arglist 的最後一個引數,指明最後這個引數是一個 Variant 元素的 Optional 陣列。使用 ParamArray 關鍵字可以提供任意數目的引數。ParamArray 關鍵字不能與 ByVal,ByRef,或 Optional 一起使用。
varname 必需的。代表引數的變數的名稱;遵循標準的變數命名約定。
type 可選的。傳遞給該過程的引數的資料型別,可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支援)、Date、String(只支援變長)、Object 或 Variant。如果沒有選擇引數 Optional,則可以指定使用者定義型別,或物件型別。
defaultvalue 可選的。任何常數或常數表示式。只對 Optional 引數合法。如果型別為 Object,則顯式的預設值只能是 Nothing。
2、函式:函式與子程式最大的區別就在於其可以返回值,而其它地方與子程式相似,語法如下:
[Public | Private | Friend] [Static] Function name [(arglist)] [As type][statements][name = expression][Exit Function] [statements][name = expression]End Function
可以看出除了宣告的關鍵詞外,其它基本類同,說明與用法也相近,這裡就不再重複了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-955124/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 儲存過程與函式儲存過程函式
- mySql 儲存過程與函式MySql儲存過程函式
- dbms_sql包所有子過程及函式SQL函式
- mysql儲存過程基本函式(轉)MySql儲存過程函式
- Excel VBA小程式 -使 用VBA實現VLOOKUP函式查詢?Excel函式
- 儲存過程與儲存函式儲存過程儲存函式
- 無參過程與無參函式函式
- shell裡邊子函式與主函式的例項(轉)函式
- MySQL自定義函式與儲存過程MySql函式儲存過程
- 高階語言反彙編程式的函式呼叫過程 (轉)函式
- Delphi編碼標準——過程和函式 (轉)函式
- 儲存過程 函式儲存過程函式
- PL/SQL 中的儲存過程與函式SQL儲存過程函式
- WINDOWS鉤子函式(轉)Windows函式
- 函式棧幀(呼叫過程)函式
- Oracle 11g系列:函式與儲存過程Oracle函式儲存過程
- VBA 自定義常用函式 (備用)函式
- VBA中使用EXCEL工作表函式Excel函式
- php呼叫mysql儲存過程和函式的方法(轉)PHPMySql儲存過程函式
- MySQL 儲存過程和函式MySql儲存過程函式
- MySQL儲存過程 (即函式)MySql儲存過程函式
- MySQL儲存過程和函式MySql儲存過程函式
- oracle 過程函式定義字典Oracle函式
- SQL server儲存過程函式SQLServer儲存過程函式
- Excel vba自定義函式公式智慧提示Excel函式公式
- JavaScript:鉤子函式與回撥函式的區別JavaScript函式
- 函式過載與函式模板的區別函式
- Excel VBA - 控制元件與使用者窗體 及 常用函式Excel控制元件函式
- mysql儲存函過程和儲存函式都屬於儲存程式MySql儲存函式
- js函式執行過程的探究JS函式
- 儲存過程vs.函式QM儲存過程函式
- OnWndMsg函式的處理過程函式
- oracle 建立過程、函式中as, is區別 ?Oracle函式
- C++建構函式解構函式的執行過程C++函式
- 15個常用sql語句 分支 迴圈 子查詢 儲存過程 事務 常用函式 sql語句執行過程(轉載備用)SQL儲存過程函式
- Vue 生命週期與鉤子函式Vue函式
- 深入mysql建立自定義函式與儲存過程的詳解MySql函式儲存過程
- Oracle 儲存過程 定義 和 優點 與 函式 區別Oracle儲存過程函式