# VBA编程工具-VBE

俗话说“工欲善其事,必先利其器”。也就是说,要做好一件事情,准备工作非常重要。在学习VBA之前,我们需要先了解一下VBA的编程工具-VBE。

既然要使用VBA编程,就需要知道应该将VBA保存在哪里。上文说过,宏就是VBA程序,那宏保存在哪里,就可以将VBA程序保存在哪里。

我们可以依次点击【开发工具】->【宏】命令,打开对话框。

宏对话框

编辑宏

点击编辑,可以打开如下窗口

VBE窗口

VBE窗口全称为Visual Basic Editor,是编写VBA程序的工具,要在Excel中编写VBA程序,就得先调出这个窗口。编辑、修改、保存VBA代码,都在这个窗口中进行。

# 打开VBE的三种方式

在Excel中,我们可以使用下面任意一种方式打开VBE。

  • 方法一:在Excel窗口中按【Alt+F11】组合键,这是最简单的一种方式

  • 方法二:执行【开发工具】->【Visual Basic】命令

Visual Basic命令

  • 方法三:执行【开发工具】->【查看代码】命令

查看代码命令

# VBE开发工具结构

进入VBE后,首先看到的就是VBE的主窗口。默认情况下,在主窗口中能看到【工程资源管理器】【属性窗口】【代码窗口】【立即窗口】【菜单栏】【工具栏】。

VBE主窗口

  • 菜单栏:VBE的【菜单栏】中包含了VBE的各种组件的命令,单击某一个菜单名称,即可调出该菜单包含的所有命令。

  • 工具栏:默认情况下,【工具栏】位于【菜单栏】的下面,可以在【视图】->【工具栏】菜单中调出或隐藏某个工具栏。

  • 工程资源管理器:【工程资源管理器】就是管理工程资源的地方,在其中可以看见所有打开的Excel工作簿和加载的加载宏。一个工程最多可以包含四类对象:Excel对象(包括Sheet对象和ThisWorkbook对象)、窗体对象、模块对象和类模块对象。

    工程可包含的对象

    以下是各类对象的功能与作用

    对象类型 描述及作用
    窗体对象 用户自定义的对话框或操作界面
    Excel对象 包括工作表对象和工作簿对象
    类模块对象 用于创建类或对象
    模块对象 用来保存VBA代码的地方,录制的宏就保存在模块中,一般情况下,我们也将自行编写的程序保存在模块中

    注意:并不是所有工程中都包含四类对象,新建的Excel文件就只有Excel对象,其它对象都是自己插入的。

  • 属性窗口:【属性窗口】是查看或设置对象属性的地方。例如:可以通过【属性窗口】修改控件的名称、颜色、位置等信息。

  • 代码窗口:【代码窗口】是编辑和显示VBA代码的地方,包含【对象列表框】【事件列表框】【代码编辑区】等。

    代码窗口

【工程资源管理器】中的每个对象都拥有自己的【代码窗口】,也就是说,【工程资源管理器】中的每个对象都可以保存编写的VBA代码。如果要将程序写在某个对象中,则需要在【工程资源管理器】中双击该对象,打开它的【代码窗口】。

  • 立即窗口:【立即窗口】是一个可以即时执行代码的地方,在【立即窗口】中直接输入VBA命令,按【Enter】键后就可以看到该命令执行的结果。当然,【立即窗口】还可以用来调试代码。

# 使用VBE编写代码

用VBA代码把完成一个任务所需要的操作和计算罗列起来,就得到一个VBA程序。在VBA中,将这些代码组成的程序称为过程。要解决的任务不同,所编写过程包含的代码也就不同。一个VBA程序可以执行任意多的操作,可以包含任意多的代码。

本文档介绍Sub过程和Function过程这两种程序,录制的宏就属于Sub过程。

要编写Sub过程,需要遵照以下格式即可。

Sub 过程名称()
    逻辑代码
End Sub    

下面,我们来编写一个Sub过程。

首先,在【工程资源管理器】的空白处单击鼠标右键,依次选择【插入】->【模块】命令,即可插入一个模块对象。

添加模块对象

接着,在【工程资源管理器】中双击新插入的模块,打开该模块的【代码窗口】,然后依次执行【插入】->【过程】命令,调出添加过程对话框。设置过程名称,类型选择子程序,范围选择公有的。

添加第一个程序过程

单击【确定】按钮,在【代码窗口】中插入一个只包含开始语句和结束语句的空过程。

Public Sub 第一个程序()
   
End Sub

然后,我们将编写VBA的逻辑代码。

Public Sub 第一个程序()

    MsgBox "这是我的第一个VBA程序"
    
End Sub

最后,Sub过程编写好了,只要将鼠标光标定位到程序的任意位置,依次执行【运行】->【运行子过程/用户窗体】命令(或按【F5】键)即可执行它。

运行程序对话框

选中这个程序,点击【确认】按钮,运行结果为弹出一个对话框。

第一个程序运行结果

LastUpdated: 3/11/2021, 7:31:36 PM