二維碼 購物車
部落窩在線教育歡迎您!

VBA實戰(zhàn)入門教程(五):認(rèn)識VBE——VBA的編輯器

?

作者:E圖表述來源:部落窩教育發(fā)布時間:2020-06-09 15:22:07點擊:3458

分享到:
0
收藏    收藏人氣:0人
版權(quán)說明: 原創(chuàng)作品,禁止轉(zhuǎn)載。

編按:

哈嘍,大家好!VBA實戰(zhàn)入門教程第5篇,我們將從九九乘法表開始和結(jié)束今天的教程。之中,我們會認(rèn)識VBE,也就是VBA代碼的編輯器。VBE的基本概念、打開方式,以及它的布局和主要功能,它們很簡單,但我們需要掌握。你可以認(rèn)為這篇教程是我們繼續(xù)學(xué)習(xí)VBA前的一次快樂休閑。

 

【前言】

 

作者E圖表述在“部落窩”也寫了不少VBA的文章了,并且現(xiàn)在依然保持更新,還是那句話:在操作函數(shù)、數(shù)透、圖表、VBA這幾大EXCEL模塊中,唯獨VBA是一定要按部就班、循序漸進(jìn)的學(xué)習(xí)。通過前幾篇內(nèi)容,我相信你一定已經(jīng)開始嘗試自己寫一些內(nèi)容了,是的,當(dāng)你知道了操作單元格+循環(huán)+判斷,那么再加上思考,就一定可以寫一些案例操作了。

 

你說什么?還沒做過,哎~,“懶癌”是病,這個作者E圖表述可治不了,你得自己治。

 

【正文】

 

好了,既然你沒練過,那么我們開篇就先來一道練習(xí)題,測一下同學(xué)們的掌握程度吧。當(dāng)然了有興趣的同學(xué)都可以來做一下,題目很簡單,“九九乘法表”。我繼續(xù)講今天的內(nèi)容,文末會公布答案。

 

● 10年前,作者初學(xué)VBA的時候,總是能看到九九乘法表的練習(xí),但是不知道為什么,現(xiàn)在很多教程都沒有這個,它對于循環(huán)+判斷邏輯關(guān)系的理解是相當(dāng)有意義的。

 

 

一、認(rèn)識VBE

 

 

我們常說的VBA,其實是Visual Basic for Application(用于應(yīng)用程序的 visual basic)的簡寫;而VBE的全稱是Visual Basic Editor,是VBA的容器,用于存放VBA。我們編寫代碼的過程,就像人與計算機(jī)說話(下達(dá)指令),只有計算機(jī)能夠聽懂我們說的話,才能執(zhí)行我們給它下達(dá)的指令,那么VBE就承載了這個編譯的過程,所以我們可以理解為VBE就是ExcelVBA的編譯器。

 

其實所有的計算機(jī)語言,如JAVA、Python都有自己的編譯器,就像一個翻譯員一樣,將我們指定的命令代碼,讓計算機(jī)能夠看懂,能夠執(zhí)行。

 

 

二、打開VBE的三種方式

 

 

1.在功能區(qū)的“開發(fā)工具”中打開VBE界面

 

很多同學(xué)的Excel功能區(qū)中都是沒有“開發(fā)工具”選項的,我們可以通過“選項”中的“自定義功能區(qū)”,調(diào)用出這個功能。

 

 

然后選擇“開發(fā)工具”——Visual Basic功能鍵,就可以打開VBE界面。

 

 

2.在工作表標(biāo)簽上單擊鼠標(biāo)右鍵,打開菜單欄

 

 

在彈出的菜單中,選擇“查看代碼”,也可以打開VBE界面。

 

3.ALT+F11組合鍵打開

 

這是最常用的一種打開VBE界面的方式。

 

注意:無論你使用何種方式打開VBE界面,都要記得,要打開某個工作薄之后,才可以使用VBE,畢竟EXCEL文件才是VBE的載體。

 

 

三、熟悉VBE界面的布局和初步調(diào)試

 

 

我們以任何一種方式打開VBE界面后,結(jié)構(gòu)如下:

 

 

當(dāng)然,你打開的VBE界面肯定不是這個樣子的,如果你也想調(diào)出這些窗口,就讓我們先從菜單欄開始介紹VBE界面的主要功能吧。

 

1.菜單欄

 

菜單欄包含了絕大部分的VBE界面的操作,信息量也比較大,我們主要從以下幾方面介紹一下:

 

1)調(diào)出窗口:點擊工具欄——視圖,里面就能顯示出所有的窗口。

 

 

2)代碼調(diào)試:點擊菜單欄——調(diào)試,可以看到日常編寫VBA代碼后,如果要調(diào)試代碼的運行,我們就需要使用這里的調(diào)試功能,作者E圖表述平時使用的是“逐語句”和“切換斷點”,而在菜單欄的二級菜單中也顯示了對應(yīng)的快捷鍵:F8F9。

 

 

3)對于VBE的設(shè)置,我們可以在菜單欄的工具菜單中,通過“選項”里面的“編輯器格式”功能,對你的VBE操作界面設(shè)置個性化的版面;也可以通過“VBAProject屬性”中的“保護(hù)”功能,對你寫過的代碼進(jìn)行加密保護(hù)。

 

 

以上是菜單欄的一些常用內(nèi)容。

 

2.工具欄

 

工具欄中的功能,是微軟為了用戶使用方便,將菜單欄中的一些常用操作圖表羅列出來,制成快速按鍵而已,我們首先看看工具欄的調(diào)用。

 

當(dāng)你初次使用VBE的時候,默認(rèn)情況一般只有“標(biāo)準(zhǔn)”工具欄,我們可以在工具欄的右側(cè)空白處,點擊鼠標(biāo)右鍵,在彈出的菜單中選擇需要的工具欄“挑勾”,然后拖拽到你需要的位置即可,如下演示:

 

 

在這么多的工具欄中,同學(xué)們也沒有必要把時間都花費在研究功能上,作者給大家列出幾個比較常用的吧,如下:

 

 

1)保存,Ctrl+S快捷鍵;

 

2)撤回,Ctrl+ZCtrl+Y快捷鍵;

 

3)運行過程。寫出一段代碼后,可以點此運行代碼查看結(jié)果或調(diào)試,快捷鍵是F5;

 

4)縮進(jìn)。就像Word一樣,代碼都是有層級的,我們以前發(fā)出的代碼,一般都是需要體現(xiàn)出代碼的層級,比如少了“結(jié)束語句”的時候,可以快速查詢糾錯。一般作者都是點兩下空格作為縮進(jìn),也可以使用Tab鍵縮進(jìn),縮進(jìn)的長度可以在選項中設(shè)置;

 

 

5)注釋塊。相當(dāng)于工作表中的批注,起到說明備忘的效果。如果我們編寫了一段比較復(fù)雜的代碼,時間一長,有可能忘記了代碼設(shè)置的思路,所以注釋塊可以起到幫助我們回憶的作用。更快捷輸入的方式是在需要添加注釋的字符串前,直接加一個英文狀態(tài)下的單引號即可。

 

3.工程資源管理器

 

這是存放對象的容器,默認(rèn)情況下,包含了Sheet對象、ThisWorkbook對象,我們還可以在這里添加“窗體”“模塊”和“類模塊”對象,添加方式如下:

 

 

4.屬性窗口

 

如果要學(xué)習(xí)VBA,那么同學(xué)們一定要有一個思想準(zhǔn)備,VBA對象的屬性雖不是多如牛毛,但卻很少有人能記住所有的屬性,甚至十分之一都記不住。這里我們可以對選定的對象進(jìn)行一些常規(guī)的格式上的設(shè)置,例如對下面某個工作表的設(shè)置:

 

 

這個設(shè)置如果寫成VBA代碼,則如下:

 

Sub 代碼1()

  With Sheets(3)

    .Name = "工作表1"

    .Visible = 0

  End With

End Sub

 

發(fā)現(xiàn)沒有,代碼中的NAMEVISIBLE屬性,和剛才在屬性窗口中設(shè)置的是同樣的寫法,是不是對學(xué)習(xí)對象屬性很有幫助。

 

5.代碼窗口

 

這個窗口是承載所有代碼編寫的地方,選擇不同的對象,那么這個代碼就是針對這個對象的代碼窗。

 

6.對象和過程窗口

 

這兩個窗口又是一個重要的內(nèi)容,不知道同學(xué)們有沒有聽說過“VBA事件”,就是在這里選擇的,例如選擇工作表對象后,如下:

 

 

又如選擇了窗體對象后,雙擊窗體區(qū)域,或者鼠標(biāo)右鍵——查看代碼,都可以調(diào)出窗體的代碼窗口,如下:

 

 

7.立即窗口

 

這個窗口,作者E圖表述很少使用。它的作用是顯示代碼運行的結(jié)果(我們調(diào)試代碼的時候,就在工作表或者窗體中點擊運行就好了),需要DEBUG.PRINT代碼輔助,如下:

 

Sub jiafa()

  a = 1 + 2

  Debug.Print a

End Sub

 

 

8.本地窗口

 

本地窗口,是作者一直都會打開的窗口。這個窗口對于“逐語句F8”調(diào)試代碼是相當(dāng)重要的,如下代碼演示:

 

 

我們連著按F8,就可以看到代碼在逐行運行,并且本地窗口中,對變量的變化給出了相當(dāng)明顯的標(biāo)記,便于我們調(diào)試代碼。(另:這個本地窗口對于我們了解代碼的運行規(guī)律也是相當(dāng)有幫助的。

 

9.監(jiān)視窗口

 

和本地窗口的用途差不多,不過我們使用監(jiān)視窗口前,需要添加被監(jiān)視的變量表達(dá)式,如下:

 

 

以上就是同學(xué)們能看到的VBE主要界面上的窗口和菜單工具欄,作者E圖表述想告訴大家:沒事兒隨便點一點,EXCEL不嬌氣,沒那么容易被你“點壞”的。

 

 

四、窗體、模塊、類模塊的意義

 

 

剛才我們在資源工程管理器中,用鼠標(biāo)右鍵插入了窗體、模塊、類模塊三個內(nèi)容,它們在EXCEL VBA中有著相當(dāng)重要的作用,是同學(xué)們走向自動化辦公的必經(jīng)之路。

 

我們通過本講簡單的了解一下它們的意義,以后我們都會有專門的篇章去學(xué)習(xí)。

 

1.窗體

 

承載窗體、控件的載體,我們有的時候使用工具欄的內(nèi)容,就會彈出一些窗體,比如我們上面講到的菜單欄——工具——選項窗體,在窗體對象的代碼窗口中寫下代碼,那么我們就可以自己DIY一個交互式操作界面,是不是很酷,想想都興奮的想操作啊!

 

2.模塊

 

模塊是使用最多的一個環(huán)節(jié)。其他的對象只能在本身對應(yīng)的代碼窗口中調(diào)用代碼語句,可是在模塊中寫入的代碼,卻可以被其他對象引用。工作表對象的代碼、工作薄對象的代碼、窗體代碼、控件代碼、模塊與模塊之間,都可以使用CALL語句調(diào)用模塊中的代碼。

 

另外,在模塊中使用FUNCTION函數(shù)過程,還可以寫出“自定義函數(shù)”,如果你的EXCEL版本低,用不了XLOOKUPMAXIFS、TEXTJOIN這類函數(shù),可以用FUNCTION函數(shù)過程自己寫出代碼,和使用工作表函數(shù)一樣方便。

 

3.類模塊

 

類模塊是自定義類的屬性和方法的模塊。使用VBA編寫的過程就是操作對象屬性和方法的過程,而類模塊是自定義這一過程的方式,我們在代碼中看到的PUBLIC PROPERTY過程,就屬于類模塊。它通常用于應(yīng)用程序級別的事件中,慢慢來,跟著學(xué),終會遇到。

 

【編后語】

 

本章的信息量很大,但是作者還是覺得有必要讓同學(xué)們了解自己正在學(xué)習(xí)的這個VBE平臺“到底長什么樣子以及其意義”,學(xué)習(xí)不能盲目,我們要走最近的路,但不能盲目的走下去,所以就有了此篇教程。如果對你有所幫助,留言告訴我,然后“分享”“在看”一波走起。

 

最后給出開篇《九九乘法表》的答案,記得多練習(xí)啊?。。№槺憧纯创a的層級縮進(jìn)!

 

Sub 九九乘法表()

  With Sheets("九九乘法表")

    For i = 1 To 9

      For j = 1 To 9

        If i >= j Then

            .Cells(i, j) = j & "*" & i & "=" & j * i

        End If

      Next j

    Next i

  End With

End Sub

 

本文配套的練習(xí)課件請加入QQ群:1043683754下載。

Excel高手,快速提升工作效率,部窩教育《一周Excel直通車》視頻和《Excel極速貫通班》直播課全心為你!

掃下方二維碼關(guān)注公眾號,可隨時隨地學(xué)習(xí)Excel

IMG_256

相關(guān)推薦:

VBA基礎(chǔ)教程④《VBA實戰(zhàn)入門教程(四):判斷語句

VBA基礎(chǔ)教程③《VBA實戰(zhàn)入門教程(三):循環(huán)語句》

VBA基礎(chǔ)教程②《VBA系列基礎(chǔ)教程(二):使用RANGE對象實現(xiàn)單元格偏移及確定首末行列號》

VBA基礎(chǔ)教程①《VBA系列基礎(chǔ)教程(一):excel中最常使用的對象——RANGE