2019年11月21日星期四

002 別怕 Excel VBA其實很簡單 第2章 開始VBA程式設計的第一步

申明本站飛宇網 https://feiyetopro.blogspot.com/自網路收集整理之書籍文章影音僅供預覽交流學習研究,其[書籍、文章、影音]情節內容, 評論屬其個人行為, 與本網站無關。版權歸原作者和出版社所有,請在下載 24 小時內刪除,不得用作商業用途;如果您喜歡其作品,請支持訂閱購買[正版]謝謝!


別怕  Excel VBA其實很簡單

第2章 開始VBA程式設計的第一步



優秀的運動員總是非常注重起跑的第一步。
準確的姿勢,恰到好處的起跑時間,再加上中間的努力拼搏,總能帶給運動員優秀的成績。
比賽的最終贏家不但有過硬的運動天賦,而且一定經過長期學習和堅持訓練的過程。
想成為一名優秀的VBA程式設計者,最先應該瞭解什麼?讓我們一起來學習。

2.1 揭開神秘面紗背後的真面目

從小張的故事裡走出來,我們正式開始學習Excel VBA。
既然錄製的巨集就是VBA程式,那讓我們打開第1章1.2.2小節中錄製的宏所在的工作簿檔,一起研究研究。

2.1.1 程式保存在哪裡

參照圖2-1所示的操作,可以查看宏對應的代碼。

圖2-1 查看錄製的宏

這個視窗是VBE視窗,打開它,在右面的【代碼視窗】中可以看到一串代碼,這就是使用宏錄製器錄下來的操作,以代碼的形式保存在模組裡。

練習小課堂

動手錄幾個不同的宏,比一比,宏的代碼有什麼共同的地方?把你總結的結論寫下來,然後再繼續後面的內容。

2.1.2 應該怎樣編寫程式


圖2-2所示為錄製巨集得到的程式。

圖2-2 錄製巨集得到的程式




2.2 程式裡都有什麼


為了在程式設計時能更加得心應手,有必要先花點時間瞭解一下在程式設計的過程中,會反復提到的一些概念。

2.2.1 代碼

VBA的程式由代碼組成,可以通過錄製巨集或自主編寫得到VBA代碼。

2.2.2 過程

用VBA代碼把完成一個任務的所有操作保存起來就是一個VBA過程。一個過程可以有任意多的操作,可以有任意長的代碼。
在本書中,只介紹Sub過程和Function過程。

2.2.3 模組

模組是保存過程的地方,一個模組可以保存多個不同類型的過程。

2.2.4 對象

用代碼操作和控制的東西即為物件,如工作簿、工作表、儲存格、圖片、圖表、透視表等。

2.2.5 物件的屬性

每個物件都有屬性,屬性是物件包含的內容或特點。
從物件的屬性,可以瞭解該對角具有的性質和特點。如字體的顏色,顏色就是字體的屬性;按鈕的寬度,寬度就是按鈕的屬性。從物件的屬性還可以瞭解到這個物件包含了哪些其他的物件。如Sheetl工作表的A1儲存格,A1儲存格就是Sheetl工作表的屬性;A1儲存格的內容,內容就是A1儲存格的屬性。
在書寫時,物件和屬性之間用點(.)連接,物件在前,屬性在後,如A1儲存格的內容,用漢字表達為:A1.內容
寫成代碼為:


物件的某些屬性也是物件,屬性和物件是相對而言的。

2.2.6 物件的方法

每個物件都有方法,方法是指在物件上執行的某個動作。如選中A1儲存格,“選中”是在A1儲存格這個物件上執行的操作,就是A1儲存格的方法。
物件和方法之間也用點(.)連接,物件在前,方法在後,如選中A1儲存格寫成代碼為:


2.2.7 關鍵字

關鍵字是VBA中的保留字或符號,如語句名稱、函數名稱、運算子等都是關鍵字。

2.3 VBA的程式設計環境——VBE

在第2章2.1.1小節中打開的視窗就是編寫VBA程式的地方——VBE(Visual Basice Editor),瞭解VBA程式中經常提到的概念後,我們再花一點時間來熟悉它。

2.3.1 打開VBE編輯器

要進入VBE,首先必須啟動Excel程式,啟動Excel後,要切換到VBE視窗,常用的方法有以下幾種。
方法一:按<Alt+F11>複合鍵。
方法二:依次執行【工具】→【巨集】→【Visual Basic編輯器】功能表命令,如圖2-3所示。

圖2-3 利用功能表命令打開VBE

方法三:按右鍵工作表標籤,執行【查看代碼】功能表命令,如圖2-4所示。

圖2-4 利用右鍵菜單打開VBE

方法四:按一下【Visual Basic】工具列中的【Visual Basic編輯器】按鈕,如圖2-5所示。

圖2-5 利用Visual Basic工具列打開VBE

方法五:按一下【控制項工具箱】中的“查看代碼”按鈕,如圖2-6所示。

圖2-6 利用控制項工具箱打開VBE

方法六:利用【控制項工具箱】新建一個ActiveX控制項,按兩下控制項打開VBE視窗,如圖2-7所示。

圖2-7 利用控制項打開VBE

2.3.2 主窗口

進入VBE後,首先看到的就是VBE的主視窗,主視窗通常由【工程資源管理器】、【屬性視窗】、【代碼視窗】、【立即視窗】、【功能表列】和【工具列】組成,如圖2-8所示。

圖2-8 VBE的主窗口

2.3.3 功能表列

VBE的【功能表列】和Excel 2003的功能表列類似,包含了VBE中各種元件的命令。

2.3.4 工具列

預設情況下,【工具列】位於【功能表列】的下面,可以在【視圖】→【工具列】功能表裡顯示或隱藏它,如圖2-9所示。

圖2-9 顯示或隱藏工具列

2.3.5 工程資源管理器

在【工程資源管理器】中可以看到所有打開的Excel工作簿和已載入的增益集,一個Excel的工作簿就是一個工程,工程名稱為“VBA Project(工作簿名稱)”。【工程資源管理器】中最多可以顯示工程裡的4類物件,即Excel物件(包括Sheet物件和ThisWorkbook物件)、表單物件、模組物件和類別模組物件,如圖2-10所示。

圖2-10 工程資源管理器

但並不是所有工程裡都包含這類物件,新建的Excel檔只有Excel類物件。

2.3.6 屬性視窗

可以在【屬性視窗】中查看或設置物件的屬性。

2.3.7 代碼視窗

【代碼視窗】由物件清單方塊、過程清單方塊、邊界標識條、代碼編輯區、過程分隔線和視圖按鈕幾部分組成,如圖2-11所示。

圖2-11 代碼視窗欄

【代碼視窗】是編輯和顯示VBA代碼的地方,【工程資源管理器】中的每個物件都擁有自己的【代碼視窗】,如果想將VBA程式寫在某個物件裡,首先應在【工程資源管理器】中按兩下以啟動它的【代碼視窗】。反過來,如果想查看某個物件裡保存有哪些程式,也必須先在【工程資源管理器】中按兩下以啟動它的【代碼視窗】。

2.3.8 立即窗口

在【立即視窗】中直接輸入命令,回車後將顯示命令執行後的結果,如圖2-12所示。

圖2-12 使用立即視窗執行代碼

【立即視窗】一個很重要的用途是調試代碼,相應的內容請參閱第7章7.3.4小節。
如果打開VBE視窗後,【立即視窗】(或其他視窗)沒有顯示,可以在【視圖】功能表中設置顯示它,如圖2-13所示。

圖2-13 利用視圖功能表顯示視窗

2.4 試寫一個簡單的VBA程式

運行Excel程式,新建一個工作簿,進入VBE,讓我們動手編寫一個簡單的程式,當程式運行後,用一個對話方塊說出現在的心情。

2.4.1 添加或刪除模組

因為VBA程式一般保存在模組裡,所以在編寫程式前,應先添加一個模組來保存它。

添加模組

方法一:利用功能表命令插入模組的具體操作如圖2-14所示。

圖2-14 利用功能表命令插入模組

方法二:利用右鍵功能表插入模組的具體操作如圖2-15所示。


圖2-15 利用右鍵功能表插入模組


練習小課堂

怎樣添加使用者表單和類別模組?試一試,然後再繼續後面的內容。

參考答案

方法一:按右鍵【工程資源管理器】中的空白處,在【插入】功能表選擇要插入的物件;
方法二:按一下功能表列中的【插入】功能表,選擇要插入的物件。
方法參照2.4.1小節中插入模組的方法。

 刪除模組

如果工程中有多餘的模組,可以刪除它。
方法一:利用檔功能表移除模組的具體操作如圖2-16所示。

圖2-16 利用檔功能表移除模組

方法二:利用右鍵功能表移除模組的具體操作如圖2-17所示。

圖2-17 利用右鍵功能表移除模組

注意:刪除模組後,同時也將刪除保存在該模組中的所有程式。

2.4.2 動手編寫程式

Step 1:在代碼視窗中添加一個空過程,如圖2-18所示。

圖2-18 插入空過程


當然,你也可以在【代碼視窗】中手動錄入這些代碼。
Step 2:將下面的代碼寫到前文兩行代碼的中間,如圖2-19所示。


圖2-19 添加代碼後的過程

Step 3:運行過程,如圖2-20所示。


圖2-20 運行程式

2.5 解除疑惑,一“鍵”傾心



對剛剛涉足VBA世界的我們,面對滿眼陌生的代碼,類似這樣的困惑總是很多。如果你想知道類似MsgBox這樣的關鍵字是什麼意思,F1鍵會是你最的好幫手,如圖2-21所示。

圖2-21 利用F1鍵查詢MsgBox函數的幫組資訊


幫助是Excel VBA自帶的一本百科全書,它能有效地幫助你解答在學習或程式設計過程中遇到的許多困惑。記住F1鍵,它是打開這本書的一把“金鑰匙”。

0 留言:

發佈留言