編按:哈嘍,大家好!VBA實(shí)戰(zhàn)入門教程第5篇,我們將從九九乘法表開(kāi)始和結(jié)束今天的教程。之中,我們會(huì)認(rèn)識(shí)VBE,也就是VBA代碼的編輯器。VBE的基本概念、打開(kāi)方式,以及它的布局和主要功能,它們很簡(jiǎn)單,但我們需要掌握。你可以認(rèn)為這篇教程是我們繼續(xù)學(xué)習(xí)VBA前的一次快樂(lè)休閑。 【前言】 作者E圖表述在“部落窩”也寫(xiě)了不少VBA的文章了,并且現(xiàn)在依然保持更新,還是那句話:在操作函數(shù)、數(shù)透、圖表、VBA這幾大EXCEL模塊中,唯獨(dú)VBA是一定要按部就班、循序漸進(jìn)的學(xué)習(xí)。通過(guò)前幾篇內(nèi)容,我相信你一定已經(jīng)開(kāi)始嘗試自己寫(xiě)一些內(nèi)容了,是的,當(dāng)你知道了操作單元格+循環(huán)+判斷,那么再加上思考,就一定可以寫(xiě)一些案例操作了。 你說(shuō)什么?還沒(méi)做過(guò),哎~,“懶癌”是病,這個(gè)作者E圖表述可治不了,你得自己治。 【正文】 好了,既然你沒(méi)練過(guò),那么我們開(kāi)篇就先來(lái)一道練習(xí)題,測(cè)一下同學(xué)們的掌握程度吧。當(dāng)然了有興趣的同學(xué)都可以來(lái)做一下,題目很簡(jiǎn)單,“九九乘法表”。我繼續(xù)講今天的內(nèi)容,文末會(huì)公布答案。 ● 10年前,作者初學(xué)VBA的時(shí)候,總是能看到“九九乘法表”的練習(xí),但是不知道為什么,現(xiàn)在很多教程都沒(méi)有這個(gè),它對(duì)于循環(huán)+判斷邏輯關(guān)系的理解是相當(dāng)有意義的。 一、認(rèn)識(shí)VBE 我們常說(shuō)的VBA,其實(shí)是Visual Basic for Application(用于應(yīng)用程序的 visual basic)的簡(jiǎn)寫(xiě);而VBE的全稱是Visual Basic Editor,是VBA的容器,用于存放VBA。我們編寫(xiě)代碼的過(guò)程,就像人與計(jì)算機(jī)說(shuō)話(下達(dá)指令),只有計(jì)算機(jī)能夠“聽(tīng)懂我們說(shuō)的話”,才能執(zhí)行我們給它下達(dá)的指令,那么VBE就承載了這個(gè)“編譯”的過(guò)程,所以我們可以理解為VBE就是Excel中VBA的編譯器。 其實(shí)所有的計(jì)算機(jī)語(yǔ)言,如JAVA、Python都有自己的編譯器,就像一個(gè)翻譯員一樣,將我們指定的命令代碼,讓計(jì)算機(jī)能夠看懂,能夠執(zhí)行。 二、打開(kāi)VBE的三種方式 1.在功能區(qū)的“開(kāi)發(fā)工具”中打開(kāi)VBE界面 很多同學(xué)的Excel功能區(qū)中都是沒(méi)有“開(kāi)發(fā)工具”選項(xiàng)的,我們可以通過(guò)“選項(xiàng)”中的“自定義功能區(qū)”,調(diào)用出這個(gè)功能。 然后選擇“開(kāi)發(fā)工具”——Visual Basic功能鍵,就可以打開(kāi)VBE界面。 2.在工作表標(biāo)簽上單擊鼠標(biāo)右鍵,打開(kāi)菜單欄 在彈出的菜單中,選擇“查看代碼”,也可以打開(kāi)VBE界面。 3.ALT+F11組合鍵打開(kāi) 這是最常用的一種打開(kāi)VBE界面的方式。 注意:無(wú)論你使用何種方式打開(kāi)VBE界面,都要記得,要打開(kāi)某個(gè)工作薄之后,才可以使用VBE,畢竟EXCEL文件才是VBE的載體。 三、熟悉VBE界面的布局和初步調(diào)試 我們以任何一種方式打開(kāi)VBE界面后,結(jié)構(gòu)如下: 當(dāng)然,你打開(kāi)的VBE界面肯定不是這個(gè)樣子的,如果你也想調(diào)出這些窗口,就讓我們先從菜單欄開(kāi)始介紹VBE界面的主要功能吧。 1.菜單欄 菜單欄包含了絕大部分的VBE界面的操作,信息量也比較大,我們主要從以下幾方面介紹一下: 1)調(diào)出窗口:點(diǎn)擊工具欄——視圖,里面就能顯示出所有的窗口。 2)代碼調(diào)試:點(diǎn)擊菜單欄——調(diào)試,可以看到日常編寫(xiě)VBA代碼后,如果要調(diào)試代碼的運(yùn)行,我們就需要使用這里的調(diào)試功能,作者E圖表述平時(shí)使用的是“逐語(yǔ)句”和“切換斷點(diǎn)”,而在菜單欄的二級(jí)菜單中也顯示了對(duì)應(yīng)的快捷鍵:F8和F9。 3)對(duì)于VBE的設(shè)置,我們可以在菜單欄的工具菜單中,通過(guò)“選項(xiàng)”里面的“編輯器格式”功能,對(duì)你的VBE操作界面設(shè)置個(gè)性化的版面;也可以通過(guò)“VBAProject屬性”中的“保護(hù)”功能,對(duì)你寫(xiě)過(guò)的代碼進(jìn)行加密保護(hù)。 以上是菜單欄的一些常用內(nèi)容。 2.工具欄 工具欄中的功能,是微軟為了用戶使用方便,將菜單欄中的一些常用操作圖表羅列出來(lái),制成快速按鍵而已,我們首先看看工具欄的調(diào)用。 當(dāng)你初次使用VBE的時(shí)候,默認(rèn)情況一般只有“標(biāo)準(zhǔn)”工具欄,我們可以在工具欄的右側(cè)空白處,點(diǎn)擊鼠標(biāo)右鍵,在彈出的菜單中選擇需要的工具欄“挑勾”,然后拖拽到你需要的位置即可,如下演示: 在這么多的工具欄中,同學(xué)們也沒(méi)有必要把時(shí)間都花費(fèi)在研究功能上,作者給大家列出幾個(gè)比較常用的吧,如下: 1)保存,Ctrl+S快捷鍵; 2)撤回,Ctrl+Z和Ctrl+Y快捷鍵; 3)運(yùn)行過(guò)程。寫(xiě)出一段代碼后,可以點(diǎn)此運(yùn)行代碼查看結(jié)果或調(diào)試,快捷鍵是F5; 4)縮進(jìn)。就像Word一樣,代碼都是有層級(jí)的,我們以前發(fā)出的代碼,一般都是需要體現(xiàn)出代碼的層級(jí),比如少了“結(jié)束語(yǔ)句”的時(shí)候,可以快速查詢糾錯(cuò)。一般作者都是點(diǎn)兩下空格作為縮進(jìn),也可以使用Tab鍵縮進(jìn),縮進(jìn)的長(zhǎng)度可以在選項(xiàng)中設(shè)置; 5)注釋塊。相當(dāng)于工作表中的批注,起到說(shuō)明備忘的效果。如果我們編寫(xiě)了一段比較復(fù)雜的代碼,時(shí)間一長(zhǎng),有可能忘記了代碼設(shè)置的思路,所以注釋塊可以起到幫助我們回憶的作用。更快捷輸入的方式是在需要添加注釋的字符串前,直接加一個(gè)英文狀態(tài)下的單引號(hào)即可。 3.工程資源管理器 這是存放對(duì)象的容器,默認(rèn)情況下,包含了Sheet對(duì)象、ThisWorkbook對(duì)象,我們還可以在這里添加“窗體”“模塊”和“類模塊”對(duì)象,添加方式如下: 4.屬性窗口 如果要學(xué)習(xí)VBA,那么同學(xué)們一定要有一個(gè)思想準(zhǔn)備,VBA對(duì)象的屬性雖不是多如牛毛,但卻很少有人能記住所有的屬性,甚至十分之一都記不住。這里我們可以對(duì)選定的對(duì)象進(jìn)行一些常規(guī)的格式上的設(shè)置,例如對(duì)下面某個(gè)工作表的設(shè)置: 這個(gè)設(shè)置如果寫(xiě)成VBA代碼,則如下: Sub 代碼1() With Sheets(3) .Name = "工作表1" .Visible = 0 End With End Sub 發(fā)現(xiàn)沒(méi)有,代碼中的NAME和VISIBLE屬性,和剛才在屬性窗口中設(shè)置的是同樣的寫(xiě)法,是不是對(duì)學(xué)習(xí)對(duì)象屬性很有幫助。 5.代碼窗口 這個(gè)窗口是承載所有代碼編寫(xiě)的地方,選擇不同的對(duì)象,那么這個(gè)代碼就是針對(duì)這個(gè)對(duì)象的代碼窗。 6.對(duì)象和過(guò)程窗口 這兩個(gè)窗口又是一個(gè)重要的內(nèi)容,不知道同學(xué)們有沒(méi)有聽(tīng)說(shuō)過(guò)“VBA事件”,就是在這里選擇的,例如選擇工作表對(duì)象后,如下: 又如選擇了窗體對(duì)象后,雙擊窗體區(qū)域,或者鼠標(biāo)右鍵——查看代碼,都可以調(diào)出窗體的代碼窗口,如下: 7.立即窗口 這個(gè)窗口,作者E圖表述很少使用。它的作用是顯示代碼運(yùn)行的結(jié)果(我們調(diào)試代碼的時(shí)候,就在工作表或者窗體中點(diǎn)擊運(yùn)行就好了),需要DEBUG.PRINT代碼輔助,如下: Sub jiafa() a = 1 + 2 Debug.Print a End Sub 8.本地窗口 本地窗口,是作者一直都會(huì)打開(kāi)的窗口。這個(gè)窗口對(duì)于“逐語(yǔ)句F8”調(diào)試代碼是相當(dāng)重要的,如下代碼演示: 我們連著按F8,就可以看到代碼在逐行運(yùn)行,并且本地窗口中,對(duì)變量的變化給出了相當(dāng)明顯的標(biāo)記,便于我們調(diào)試代碼。(另:這個(gè)本地窗口對(duì)于我們了解代碼的運(yùn)行規(guī)律也是相當(dāng)有幫助的。) 9.監(jiān)視窗口 和本地窗口的用途差不多,不過(guò)我們使用監(jiān)視窗口前,需要添加被監(jiān)視的變量表達(dá)式,如下: 以上就是同學(xué)們能看到的VBE主要界面上的窗口和菜單工具欄,作者E圖表述想告訴大家:沒(méi)事兒隨便點(diǎn)一點(diǎn),EXCEL不嬌氣,沒(méi)那么容易被你“點(diǎn)壞”的。 四、窗體、模塊、類模塊的意義 剛才我們?cè)谫Y源工程管理器中,用鼠標(biāo)右鍵插入了窗體、模塊、類模塊三個(gè)內(nèi)容,它們?cè)?span style="margin-top: 0px;margin-bottom: 0px;padding: 0px;">EXCEL VBA中有著相當(dāng)重要的作用,是同學(xué)們走向自動(dòng)化辦公的必經(jīng)之路。 我們通過(guò)本講簡(jiǎn)單的了解一下它們的意義,以后我們都會(huì)有專門的篇章去學(xué)習(xí)。 1.窗體 承載窗體、控件的載體,我們有的時(shí)候使用工具欄的內(nèi)容,就會(huì)彈出一些窗體,比如我們上面講到的菜單欄——工具——選項(xiàng)窗體,在窗體對(duì)象的代碼窗口中寫(xiě)下代碼,那么我們就可以自己DIY一個(gè)交互式操作界面,是不是很酷,想想都興奮的想操作?。?/span> 2.模塊 模塊是使用最多的一個(gè)環(huán)節(jié)。其他的對(duì)象只能在本身對(duì)應(yīng)的代碼窗口中調(diào)用代碼語(yǔ)句,可是在模塊中寫(xiě)入的代碼,卻可以被其他對(duì)象引用。工作表對(duì)象的代碼、工作薄對(duì)象的代碼、窗體代碼、控件代碼、模塊與模塊之間,都可以使用CALL語(yǔ)句調(diào)用模塊中的代碼。 另外,在模塊中使用FUNCTION函數(shù)過(guò)程,還可以寫(xiě)出“自定義函數(shù)”,如果你的EXCEL版本低,用不了XLOOKUP、MAXIFS、TEXTJOIN這類函數(shù),可以用FUNCTION函數(shù)過(guò)程自己寫(xiě)出代碼,和使用工作表函數(shù)一樣方便。 3.類模塊 類模塊是自定義類的屬性和方法的模塊。使用VBA編寫(xiě)的過(guò)程就是操作對(duì)象屬性和方法的過(guò)程,而類模塊是自定義這一過(guò)程的方式,我們?cè)诖a中看到的PUBLIC PROPERTY過(guò)程,就屬于類模塊。它通常用于應(yīng)用程序級(jí)別的事件中,慢慢來(lái),跟著學(xué),終會(huì)遇到。 【編后語(yǔ)】 本章的信息量很大,但是作者還是覺(jué)得有必要讓同學(xué)們了解自己正在學(xué)習(xí)的這個(gè)VBE平臺(tái)“到底長(zhǎng)什么樣子以及其意義”,學(xué)習(xí)不能盲目,我們要走最近的路,但不能盲目的走下去,所以就有了此篇教程。如果對(duì)你有所幫助,留言告訴我,然后“分享”“在看”一波走起。 最后給出開(kāi)篇《九九乘法表》的答案,記得多練習(xí)啊?。?!順便看看代碼的層級(jí)縮進(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 好了,今天就分享到這兒了。 ****部落窩教育-VBA的編輯器VBE**** 原創(chuàng):E圖表述/部落窩教育(未經(jīng)同意,請(qǐng)勿轉(zhuǎn)載) 微信公眾號(hào):exceljiaocheng,+v:blwjymx2 |
|
來(lái)自: 部落窩教育BLW > 《部落窩excel/VBA》