4.2 對模塊的概覽 過程被定義為VBA代碼的一個單元,過程中包括一系列用于執(zhí)行某個任務(wù)或是進(jìn)行某種計算的語句。工作簿的每個過程都有唯一的名字加以區(qū)分。 有兩種不同的過程:子程序和函數(shù)過程。子程序只執(zhí)行一個或多個操作,而不返回數(shù)值。當(dāng)錄制完宏查看代碼時,所看到的就是子程序。宏只能錄制子程序,而不能錄制函數(shù)過程。一個子程序的例子如清單4-1所示。 程序清單4-1 子程序的例子 Sub cmdSmallFont_Click() With Selection.Font .Name="Arial" .FontStyle="Regular" .Size=16 End With End sub 上面列出的過程實際上是一個事件過程。通過它的名字,就可以知道這是一個事件過程。這個過程的名字是由一個對象的名字CmdSmallFont和一個事件的名字Click組成的,兩者之間用下劃線分開。如果還不明白,可以告訴你,CmdSmallFont是一個命令按鈕的名字。也就是說,當(dāng)單擊這個命令按鈕時,就會運行這個事件過程。 函數(shù)過程通常情況下稱為函數(shù),要返回一個數(shù)值。這個數(shù)值通常是計算的結(jié)果或是測試的結(jié)果,例如False 或True.正如前面所說,可以用VBA創(chuàng)建自定義函數(shù)。實際上可以在工作表上使用你創(chuàng)建的函數(shù)。程序清單4-2是一個計算價格的10%為運費的簡單例子。 程序清單4-2 簡單的用戶定義函數(shù)示例。 Public Function Shipping(Price) Shipping = Price * 0.1 End Function 請注意,這個函數(shù)使用一個參數(shù)(Price).子程序和函數(shù)都可以使用參數(shù)。不論Price的值是多少,它都將決定運費額。Price可以是數(shù)字和單元格引用。函數(shù)返回計算出來的運費,這個函數(shù)可以用在單元格中。 A B 1 Price 100 2 Shipping =shipping(B1)
4.2.1 創(chuàng)建過程 創(chuàng)建第一個過程需要兩個基本步驟。首先,需要向工作簿中添加一個模塊。接著需要向模塊中添加一個工程。對于創(chuàng)建的每一個應(yīng)用程序,只需添加一次模塊??梢允褂枚鄠€模塊,但這是不必要的。某些開發(fā)者喜歡使用多個模塊,以便根據(jù)他們的目的或者窗體對過程進(jìn)行組織。在本練習(xí)中,創(chuàng)建的過程只顯示一個消息框。 在本練習(xí)中創(chuàng)建的過程只顯示一個消息框。在本練習(xí)中使用Msgbox是為了提供一個可見的例子,雖然我們還沒有介紹過Msgbox語句,但是在本例中將使用它。要創(chuàng)建該過程,請按如下步驟進(jìn)行: 1)打開一個新工作簿。 2)選擇"工具"-"宏"-"Visual Basic編輯器",打開VBA編輯器窗口。 3)在`VBA編輯器的左面,可以看到“工程資源管理器”窗口。在工程資源管理器窗口的“Thisworkbook"上單擊鼠標(biāo)右鍵,選擇“插入”-“模塊”,這樣就將一個模塊添加到應(yīng)用程序中了。(如果你沒有看見“工程資源管理器”窗口,可以按Ctrl+R) 4)選擇“插入”“過程”,顯示“添加過程”對話框。 5)輸入“第一個工程”作為過程名字。在“類型”分組框中,確認(rèn)選擇了“子程序”。單擊“確定”按鈕。這樣一個新的過程就添加到模塊中了??梢栽谀K中看到以 Public Sub 第一個過程()開始,以End Sub結(jié)束的語句結(jié)構(gòu)。 6)在過程中插入光標(biāo),輸入以下語句并回車: Msgbox "這是我的第一個過程" 在輸入Msgbox后,會自動彈出一個消息框告訴你有關(guān)這條命令的信息,稱之為自動列表技術(shù)。輸入完成的過程如下所示: Public Sub 第一個過程() Msgbox "這是我的第一個過程" End Sub