農林漁牧網

您現在的位置是:首頁 > 農業

002.瞭解VBA編輯器

2023-01-08由 永不止步的老牛2022 發表于 農業

以下哪幾種屬於自定義排序功能

002.瞭解VBA編輯器

大家好,我是永不止步的老牛。

上一篇我們介紹了VBA的一些基本概念,本篇我們介紹VBA編輯器,

工欲善其事,必先利其器

,善用編輯環境的功能,能對我們的開發帶來極大幫助。

啟動後的VBA編輯器預設有三個視窗,左邊是“工程資源管理器”和“屬性”視窗,右邊是“程式碼”視窗。

002.瞭解VBA編輯器

VBA編輯器還有物件瀏覽器、立即視窗、本地視窗、監視視窗。

本篇將介紹幾類視窗及除錯VBA程式的工具欄。

1.工程資源管理器

工程資源管理器預設是以分類形式顯示當前工程中所有物件。在頂部有3個按鈕,分別為“檢視程式碼”、“檢視物件”、“切換資料夾”。

002.瞭解VBA編輯器

選擇其中一個物件後,點選“檢視程式碼”,會把該物件對應的程式碼顯示在程式碼視窗內;

如果選擇的物件是“模組”或“類模組”,因為沒有對應的窗體,“檢視物件”按鈕會暗顯,如果選擇的物件是“Microsoft Excel 物件“,點選“檢視窗體”,會切換到Excel編輯頁面對應的Sheet頁,如果選擇的物件是”窗體” ,點選“檢視窗體”,會顯示該物件對應的窗體,如圖

002.瞭解VBA編輯器

“切換資料夾“是將資源列表按照”分類“和”不分類“兩種展示方式,進行切換,預設是分類展示資源,不分類展示如下圖

002.瞭解VBA編輯器

在資源列表中,點選滑鼠右鍵,會彈出如下圖選單

002.瞭解VBA編輯器

根據所選資源不同,選單會顯示當前可用項,不可用項暗顯。

最上面3項對應前面剛說的3個按鈕,“切換資料夾“會一直亮顯;

“VBAProject屬性“顯示工程屬性視窗,可以修改工程名稱和設定工程保護,工程保護就是給工程設定密碼,想檢視程式碼前,需要輸入密碼,“VBAProject屬性“會一直亮顯;

002.瞭解VBA編輯器

002.瞭解VBA編輯器

“插入”可以新增窗體、模組、類模組3類資源,會一直亮顯;

“匯入檔案”是將磁碟檔案新增到工程內,會一直亮顯;

“匯出檔案”是將選中物件儲存到磁碟上,選擇的是工程或分類名稱時暗顯;

“移除”是將選中物件刪除掉,刪除前會出提示窗體詢問刪除前是否要先匯出,選擇的是工程或分類名稱時暗顯;

002.瞭解VBA編輯器

“列印”會調出列印視窗,會一直亮顯;

“可連線的”

是指

工程資源管理器視窗是否能停靠,會一直亮顯;

“隱藏”是將工程資源管理器視窗隱藏起來,會一直亮顯,隱藏後的工程資源管理器視窗可以透過頂部選單“檢視”開啟顯示,或按快捷鍵Ctrl+R開啟顯示。

2.屬性視窗

002.瞭解VBA編輯器

屬性視窗是顯示所選擇物件的所有屬性資訊,可以方便的在屬性視窗中直接設定所選物件的屬性。

“物件下拉框”內是資源管理器所選物件中包含的所有物件,比如說資源管理器中選擇的是個窗體檔案,這個窗體檔案上放置了一個按鈕和文字框,那麼這個下拉框內將顯示3項:窗體、按鈕、文字框。左邊是“物件下拉框”選中物件的所有屬性,右邊是屬性對應的屬性值,可以在右側直接修改。

在“物件下拉框”下面有2個面板“按字母排序”和“按分類排序”,就是將屬性列表按不同的形式展示。

3.程式碼視窗

程式碼視窗用於顯示、編寫、除錯VBA程式碼,窗體、模組、類模組、工作表、工作簿、控制元件的程式碼都在這個視窗編輯。

002.瞭解VBA編輯器

程式碼編輯區域就是我們寫VBA程式碼的地方,“物件下拉框”可以選擇“通用”和物件,如果選擇的是“通用”,“過程/事件下拉框”顯示“宣告”和過程名稱,如果選擇的是物件,“過程/事件下拉框”顯示該物件的所有事件,選擇一個事件後,該事件的VBA程式程式碼將會顯示在程式碼編輯區域。

“拆分欄”是將程式碼編輯區域拆分成上下兩部分,可以分別顯示不同的程式碼,主要是除錯程式碼段特別長的過程時方便進行比較檢視。

左下角按鈕是切換兩種程式碼區域展示方式。

4.物件瀏覽器

物件瀏覽器可以檢視VBA可用物件,以及它們的屬性,方法和事件。

002.瞭解VBA編輯器

物件瀏覽器視窗的上部顯示“工程/庫”下拉列表,這裡列出了所有庫名稱以及當前VBA工程裡可用的所有工程名稱。 “Excel”庫,表示僅僅能在Excel裡執行的物件名稱,VBA庫列出了所有能在VBA裡執行的物件名稱。

在“工程/庫”下拉列表框下面,有一個“搜尋”文字框,可以在某個庫裡搜尋想要的資訊。在物件瀏覽器的任何地方單擊右鍵,在快捷選單上選擇“全字匹配”,就只搜尋匹配整個字的內容。

物件瀏覽器上的“搜尋結果”顯示符合搜尋條件的庫,類和成員。當你輸入搜尋文字並且單擊搜尋按鈕,VB展開物件瀏覽器對話方塊以顯示搜尋結果。點選“望遠鏡”按鈕右邊的“顯示/隱藏搜尋結果”來顯示或者隱藏搜尋結果。

類列表框顯示所選中的庫裡面所有可用的物件類,如果你選擇VBA工程,列表顯示該工程裡的物件。選中一個類後,右邊的列表顯示該類可用的屬性,方法和事件。右邊列表選中某項後,下方區域會顯示該項的描述資訊。

我們庫選中VBA,搜尋框輸入Abs,再按F1,將會顯示Abs函式的資訊。

002.瞭解VBA編輯器

5.立即視窗

立即視窗可以理解成是命令列視窗,輸入VBA命令後按回車鍵可以直接執行,可以在程式執行中設定斷點,等程式執行到斷點處暫停時,在立即視窗輸入命令進行檢視或設定。

002.瞭解VBA編輯器

也可以直接在程式程式碼中把一些資訊直接輸出到立即視窗,方便除錯,這種好處是不需要設定斷點,用Debug。Print命令可以將需要監視的資訊輸出到立即視窗。

002.瞭解VBA編輯器

6.本地視窗

在除錯程式時,本地視窗會顯示所有在當前過程中的變數宣告和變數值。

列表中有“表示式”、“值”、“型別”3列資料,分別顯示錶達式、表示式數值、資料型別。

列表中的第一個變數,如果是類模組,會用表示,以樹形顯示所有模組層次變數,如果是其他模組,顯示的是模組名稱。

本地視窗中的表示式列不能編輯,不能訪問全域性變數。

002.瞭解VBA編輯器

7.監視視窗

002.瞭解VBA編輯器

監視視窗是除錯程式的利器,在程式執行到斷點處,我們可以根據需要新增監視表示式,新增後,表示式的值就會顯示在監視視窗中,監視視窗包含“表示式”、“值”、“型別”、“上下文”4列,“表示式”是我們輸入需要監視其值的表示式,“值”是程式觸發中斷時表示式的值,“型別”值監視表示式的資料型別,“上下文”指表示式所在模組。

在監視視窗右鍵,在彈出選單中選擇“新增監視”,彈出新增監視窗體。

002.瞭解VBA編輯器

在文字框中輸入我們需要監視的表示式,上下文是設定表示式的計算範圍,這個範圍一般是設定的小一點,因為一旦設定好監控表示式,程式每執行一步,都會重新計算表示式的值,如果設定的範圍太大,程式執行的速度會明顯下降。

“監視型別”是指定如何響應監視表示式:

“監視表示式”:顯示監控表示式的值;

“當監視值為真時中斷”:就是當表示式的值為True時,中斷程式執行;

“當監視值改變時中斷”:就是當表示式的值發生改變時,中斷程式執行。

8.除錯VBA程式的工具欄

當我們編寫一段程式後,需要試執行來確認程式正確性,發現程式中存在的各種問題並進行修改,這就是除錯程式,編寫程式的大部分時間是花費在除錯程式上。

除錯需要用到除錯工具欄,除錯工具欄可以執行程式、中斷程式執行、停止程式執行、設定斷點、逐語句執行、逐過程執行、跳出當前過程,前面說到的調出本地視窗、立即視窗、監視視窗的按鈕、快速新增監視的按鈕,以及顯示呼叫堆疊視窗。

002.瞭解VBA編輯器

“設計模式切換”按鈕是一個開關鍵,就是在設計模式和非設計模式之間進行切換,當為設計模式時,工程中的程式碼將不被執行且工程中的事件也不被執行,當為非設計模式時,意味著程式碼可以被執行。

“執行”指執行過程、窗體或宏,弱國游標處在一個過程體內,則是執行這個過程,如果處在啟用狀態的窗體,則是執行這個窗體,否則就是執行宏。

“中斷”指將正在執行的程式暫停執行。

“停止”指清除當前堆疊及模組級變數,重置工程,就是使執行的程式停下來。

“斷點”按鈕是一個開關鍵,就是對游標所在行設定斷點或取消斷點。

“逐語句”指程式執行時,一條語句一條語句的執行程式碼。

“逐過程”指程式執行時,一個過程一個過程的執行程式碼。

“跳出”指跳出當前正在執行的過程,繼續執行後續的程式碼。

“本地”、“立即”、“監視”指分別調出“本地視窗”、“立即視窗”、“監視視窗”。

“快速監視”彈出快速新增監視窗體,可以對游標所在表示式快速新增監視,如圖:

002.瞭解VBA編輯器

“呼叫堆疊”指調出“呼叫堆疊”視窗,顯示再中斷模式期間活動的過程呼叫,當執行一個過程中的程式碼時,該過程會新增到活動的過程呼叫列表。每次過程呼叫其他過程,便會新增列表,被呼叫的過程再執行完回到原呼叫過程時,便會從列表中刪除掉。當程式程式碼複雜,過程呼叫很多時,可以透過該視窗瞭解當前程式碼過程呼叫情況。

VBA編輯器的大致內容就介紹到這裡,還有一些細節等我們後續碰到時再細說,下一篇文章我們介紹過程和函式以及MsgBox函式、InputBox函式、InputBox方法。