VBA实战入门教程(五):你分得清VBA和VBE吗?

编按:哈喽,大家好!VBA实战入门教程第5篇,我们将从九九乘法表开始和结束今天的教程。之中,我们会认识VBE,也就是VBA代码的编辑器。VBE的基本概念、打开方式,以及它的布局和主要功能,它们很简单,但我们需要掌握。你可以认为这篇教程是我们继续学习VBA前的一次快乐休闲。


【前言】

作者E图表述在“部落窝”也写了不少VBA的文章了,并且现在依然保持更新,还是那句话:在操作函数、数透、图表、VBA这几大EXCEL模块中,唯独VBA是一定要按部就班、循序渐进的学习。通过前几篇内容,我相信你一定已经开始尝试自己写一些内容了,是的,当你知道了操作单元格+循环+判断,那么再加上思考,就一定可以写一些案例操作了。

你说什么?还没做过,哎~,“懒癌”是病,这个作者E图表述可治不了,你得自己治。

【正文】

好了,既然你没练过,那么我们开篇就先来一道练习题,测一下同学们的掌握程度吧。当然了有兴趣的同学都可以来做一下,题目很简单,“九九乘法表”。我继续讲今天的内容,文末会公布答案。

● 10年前,作者初学VBA的时候,总是能看到“九九乘法表”的练习,但是不知道为什么,现在很多教程都没有这个,它对于循环+判断逻辑关系的理解是相当有意义的。

一、认识VBE

我们常说的VBA,其实是Visual Basic for Application(用于应用程序的 visual basic)的简写;而VBE的全称是Visual Basic Editor,是VBA的容器,用于存放VBA。我们编写代码的过程,就像人与计算机说话(下达指令),只有计算机能够“听懂我们说的话”,才能执行我们给它下达的指令,那么VBE就承载了这个“编译”的过程,所以我们可以理解为VBE就是Excel中VBA的编译器。

其实所有的计算机语言,如JAVA、Python都有自己的编译器,就像一个翻译员一样,将我们指定的命令代码,让计算机能够看懂,能够执行。

二、打开VBE的三种方式

1.在功能区的“开发工具”中打开VBE界面

很多同学的Excel功能区中都是没有“开发工具”选项的,我们可以通过“选项”中的“自定义功能区”,调用出这个功能。

然后选择“开发工具”——Visual Basic功能键,就可以打开VBE界面。

2.在工作表标签上单击鼠标右键,打开菜单栏

在弹出的菜单中,选择“查看代码”,也可以打开VBE界面。

3.ALT+F11组合键打开

这是最常用的一种打开VBE界面的方式。

注意:无论你使用何种方式打开VBE界面,都要记得,要打开某个工作薄之后,才可以使用VBE,毕竟EXCEL文件才是VBE的载体。

三、熟悉VBE界面的布局和初步调试

我们以任何一种方式打开VBE界面后,结构如下:

当然,你打开的VBE界面肯定不是这个样子的,如果你也想调出这些窗口,就让我们先从菜单栏开始介绍VBE界面的主要功能吧。

1.菜单栏

菜单栏包含了绝大部分的VBE界面的操作,信息量也比较大,我们主要从以下几方面介绍一下:

1)调出窗口:点击工具栏——视图,里面就能显示出所有的窗口。

2)代码调试:点击菜单栏——调试,可以看到日常编写VBA代码后,如果要调试代码的运行,我们就需要使用这里的调试功能,作者E图表述平时使用的是“逐语句”和“切换断点”,而在菜单栏的二级菜单中也显示了对应的快捷键:F8和F9。

3)对于VBE的设置,我们可以在菜单栏的工具菜单中,通过“选项”里面的“编辑器格式”功能,对你的VBE操作界面设置个性化的版面;也可以通过“VBAProject属性”中的“保护”功能,对你写过的代码进行加密保护。

以上是菜单栏的一些常用内容。

2.工具栏

工具栏中的功能,是微软为了用户使用方便,将菜单栏中的一些常用操作图表罗列出来,制成快速按键而已,我们首先看看工具栏的调用。

当你初次使用VBE的时候,默认情况一般只有“标准”工具栏,我们可以在工具栏的右侧空白处,点击鼠标右键,在弹出的菜单中选择需要的工具栏“挑勾”,然后拖拽到你需要的位置即可,如下演示:

在这么多的工具栏中,同学们也没有必要把时间都花费在研究功能上,作者给大家列出几个比较常用的吧,如下:

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

2)撤回,Ctrl+Z和Ctrl+Y快捷键;

3)运行过程。写出一段代码后,可以点此运行代码查看结果或调试,快捷键是F5;

4)缩进。就像Word一样,代码都是有层级的,我们以前发出的代码,一般都是需要体现出代码的层级,比如少了“结束语句”的时候,可以快速查询纠错。一般作者都是点两下空格作为缩进,也可以使用Tab键缩进,缩进的长度可以在选项中设置;

5)注释块。相当于工作表中的批注,起到说明备忘的效果。如果我们编写了一段比较复杂的代码,时间一长,有可能忘记了代码设置的思路,所以注释块可以起到帮助我们回忆的作用。更快捷输入的方式是在需要添加注释的字符串前,直接加一个英文状态下的单引号即可。

3.工程资源管理器

这是存放对象的容器,默认情况下,包含了Sheet对象、ThisWorkbook对象,我们还可以在这里添加“窗体”“模块”和“类模块”对象,添加方式如下:

4.属性窗口

如果要学习VBA,那么同学们一定要有一个思想准备,VBA对象的属性虽不是多如牛毛,但却很少有人能记住所有的属性,甚至十分之一都记不住。这里我们可以对选定的对象进行一些常规的格式上的设置,例如对下面某个工作表的设置:

这个设置如果写成VBA代码,则如下:

Sub 代码1()

With Sheets(3)

.Name = "工作表1"

.Visible = 0

End With

End Sub

发现没有,代码中的NAME和VISIBLE属性,和刚才在属性窗口中设置的是同样的写法,是不是对学习对象属性很有帮助。

5.代码窗口

这个窗口是承载所有代码编写的地方,选择不同的对象,那么这个代码就是针对这个对象的代码窗。

6.对象和过程窗口

这两个窗口又是一个重要的内容,不知道同学们有没有听说过“VBA事件”,就是在这里选择的,例如选择工作表对象后,如下:

又如选择了窗体对象后,双击窗体区域,或者鼠标右键——查看代码,都可以调出窗体的代码窗口,如下:

7.立即窗口

这个窗口,作者E图表述很少使用。它的作用是显示代码运行的结果(我们调试代码的时候,就在工作表或者窗体中点击运行就好了),需要DEBUG.PRINT代码辅助,如下:

Sub jiafa()

a = 1 + 2

Debug.Print a

End Sub

8.本地窗口

本地窗口,是作者一直都会打开的窗口。这个窗口对于“逐语句F8”调试代码是相当重要的,如下代码演示:

我们连着按F8,就可以看到代码在逐行运行,并且本地窗口中,对变量的变化给出了相当明显的标记,便于我们调试代码。(另:这个本地窗口对于我们了解代码的运行规律也是相当有帮助的。)

9.监视窗口

和本地窗口的用途差不多,不过我们使用监视窗口前,需要添加被监视的变量表达式,如下:

以上就是同学们能看到的VBE主要界面上的窗口和菜单工具栏,作者E图表述想告诉大家:没事儿随便点一点,EXCEL不娇气,没那么容易被你“点坏”的。

四、窗体、模块、类模块的意义

刚才我们在资源工程管理器中,用鼠标右键插入了窗体、模块、类模块三个内容,它们在EXCEL VBA中有着相当重要的作用,是同学们走向自动化办公的必经之路。

我们通过本讲简单的了解一下它们的意义,以后我们都会有专门的篇章去学习。

1.窗体

承载窗体、控件的载体,我们有的时候使用工具栏的内容,就会弹出一些窗体,比如我们上面讲到的菜单栏——工具——选项窗体,在窗体对象的代码窗口中写下代码,那么我们就可以自己DIY一个交互式操作界面,是不是很酷,想想都兴奋的想操作啊!

2.模块

模块是使用最多的一个环节。其他的对象只能在本身对应的代码窗口中调用代码语句,可是在模块中写入的代码,却可以被其他对象引用。工作表对象的代码、工作薄对象的代码、窗体代码、控件代码、模块与模块之间,都可以使用CALL语句调用模块中的代码。

另外,在模块中使用FUNCTION函数过程,还可以写出“自定义函数”,如果你的EXCEL版本低,用不了XLOOKUP、MAXIFS、TEXTJOIN这类函数,可以用FUNCTION函数过程自己写出代码,和使用工作表函数一样方便。

3.类模块

类模块是自定义类的属性和方法的模块。使用VBA编写的过程就是操作对象属性和方法的过程,而类模块是自定义这一过程的方式,我们在代码中看到的PUBLIC PROPERTY过程,就属于类模块。它通常用于应用程序级别的事件中,慢慢来,跟着学,终会遇到。

【编后语】

本章的信息量很大,但是作者还是觉得有必要让同学们了解自己正在学习的这个VBE平台“到底长什么样子以及其意义”,学习不能盲目,我们要走最近的路,但不能盲目的走下去,所以就有了此篇教程。如果对你有所帮助,留言告诉我,然后“分享”“在看”一波走起。

最后给出开篇《九九乘法表》的答案,记得多练习啊!!!顺便看看代码的层级缩进!

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****

原创:E图表述/部落窝教育(未经同意,请勿转载)

微信公众号:exceljiaocheng,+v:blwjymx2

(0)

相关推荐