![Office VBA从新手到高手](https://wfqqreader-1252317822.image.myqcloud.com/cover/13/729013/b_729013.jpg)
第2章 VBA开发环境
本章视频教学录像:21分钟
高手指引
VBA的程序是由代码组成,编写和调试VBA代码的操作都是在VBE窗口中完成的,因此,非常有必要熟悉VBE窗口的结构,并熟练掌握其使用方法。VBE (Visual Basic Editor) 或者VBA集成开发环境IDE(Integrated Development Environment)是进行VBA程序代码设计和编写的地方,具有非常友好的开发环境,集中了代码编写、调试等功能,是学习VBA过程中必备的工具。下面让我们先熟悉一下VBA的集成开发环境的结构和使用方法,然后通过一个简单的VBA使用程序的编写,认识使用VBA集成开发环境开发程序的基本过程。
重点导读
掌握VBA集成开发环境的安装与配置
VBA程序应用实例
VBA帮助系统的应用
2.1 VBA的集成开发环境
本节视频教学录像:10分钟
使用VBA开发应用程序时,有关VBA的操作都是在VBE中进行的,使用VBE开发环境可以完成以下任务。
⑴ 创建VBA过程。
⑵ 创建用户窗体。
⑶ 查看/修改对象属性。
⑷ 编辑/调试VBA程序。
下面就来认识一下VBA的集成开发环境。
2.1.1 VBA开发环境的安装与配置
用户在安装Office组件的时候,如果使用的是默认的安装方式,则VBA的开发环境即VBE同时也安装好了。VBE是一个单独的应用程序,拥有独立的操作窗口,可以与Office组件无缝地结合,但VBE环境不能单独打开,要使用VBE,必须先运行对应Office组件(例如先打开Word或者Excel)。
如果没有选择默认安装的方式,有可能VBA的开发环境没有安装,此时可以选择重新安装,或者从网上下载最新的VBA插件,然后安装即可。
初始启动Office组件的时候,VBE环境选项并没有出现在Office的菜单上,需要先进行基本的配置才可以使用。下面使用Office组件Excel 2010为例给出了配置VBE环境的方法。
1 选择【文件】 【选项】菜单命令。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0035_0025.jpg?sign=1738811231-B8G2Z7ht3N7zrDIL9SaaRoVXL0hwFKmE-0-5e482e1252529d103e06ab14022026ca)
2 在弹出的对话框中,首先单击对话框左侧【自定义功能区】选项,然后单击右侧的【自定义功能区】下拉按钮,在【主选项卡】下方内容中单击“开发工具”前的方框,打上“√”。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0035_0026.jpg?sign=1738811231-WdHoXWRXbt1ToWnMSyVjxZwgBiI00XRC-0-c6bca19bcb42d9fc7e89da9551f6210b)
这样就完成了VBE的配置,VBE环境选项就出现在Office的菜单上,可以使用下一节介绍的任意一种方法访问VBA开发环境。
提示
如果按照上面的步骤无法配置VBE,推荐将Office组件重新安装,安装的时候选择默认即可。
2.1.2 VBA开发环境
下面同样使用Office组件Excel 2010为例,给出访问VBE环境的方法。
方法一:在【开发工具】功能区中单击【Visual Basic】按钮,即可弹出VBA的开发环境。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0036_0027.jpg?sign=1738811231-oDM86BWC8XGvtgkaL6hG2amaOMiYdrWl-0-1611b63c8a7f749b8a6e4f24661c858d)
方法二:通过快捷组合键【Alt+F11】。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0036_0028.jpg?sign=1738811231-hrYbsYL49SxdPBUuJWNu6z43TWfFK2Lf-0-188f9000d157d40d403bcfba649ae4f7)
提示
编写对于同一程序,例如Excel,不管打开几个Excel文件,所启动的VBA集成开发环境只有一个。
2.1.3 VBA开发环境的组件
上一节已经介绍了访问VBE环境的方法,VBE是Office和VB两种环境的集合体,因此在界面上继承了两个软件的特点。下面以Excel 2010 VBE为例来熟悉一下VBE界面的各个组成部分。
默认情况下,VBA集成开发环境一般包括上方的【菜单栏】和【工具栏】,左侧的上方为【工程资源管理窗口】,左侧下方为【属性窗口】,右侧为【代码窗口】。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0036_0029.jpg?sign=1738811231-Sko6X5zim9pOqExDncQu16CSPkyyVlXc-0-5f66755172d149834a409c1a963a75d1)
⑴ VBE的【菜单栏】与其他Windows应用程序的菜单栏相似,包含了VBE中的绝大多数命令,用户只需选择对应菜单即可执行对应命令。
⑵ VBE的【工具栏】有5个,分别是“编辑”、“标准”、“快捷菜单”、“调试”和“用户窗体”。默认情况下,标准工具栏显示在菜单栏的下方,可以选择【视图】➣【工具栏】选项进行选择其他工具栏,也可以选择【视图】➣【工具栏】➣【自定义】选项,根据需要新建用户自己的工具栏。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0037_0030.jpg?sign=1738811231-FKnxDruNheNClRN7hnTmlaY5UsXrmLLk-0-f6e50d5eb00003c733da864fbfe209a9)
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0037_0031.jpg?sign=1738811231-DaM6O2t8MBlicmhnrYTFGB366EdRa2h3-0-aae6ddfea90ac6508145de7fff3e4742)
⑶ 【工程资源管理器】窗口中可以看到所有打开和加载的Excel文件及其加载宏。在VBA中,每一个Excel文件称为一个工程,工程名称为“VBAProject(工作薄1)”,如果同时打开多个文件,则可以同时看到多个工程存在。
对于一个工程,在【工程资源管理器】中最多可以显示工程的4类对象,这4类对象分别如下。
① Microsoft Excel对象。
② 窗体对象。
③ 模块对象。
④ 类模块对象。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0037_0032.jpg?sign=1738811231-pvIOjLDTw1CGQog8ehWFHBTbrlCXQqVn-0-ddd03dd01cf611c9d158fd0f50acedab)
这4类对象的作用如下所述。
Microsoft Excel对象是代表了Excel文件及它所包含的工作薄和工作表等几个对象,即包括一个Workbook和所有的Sheet,例如默认情况下,Excel文件包含3个Sheet,则在【工程资源管理器】窗口中就包括3个Sheet,名字分别对应原Excel文件中每个Sheet的名字,ThisWorkbook代表当前Excel文件,双击这些对象,可以打开【代码窗口】,在【代码窗口】中可以输入相关代码,相应工作薄或者文件的某些时间,例如:文件打开、文件关闭等。
① 窗体对象是指所定义的对话框或者界面。在VBA设计中经常会涉及窗体或者对话框的设计,在后面章节中我们将陆续介绍是如何产生的。
② 模块对象是指用户自定义的代码,是所录制的宏所保存的地方。
③ 类模块对象是指以类或者对象的方式编写代码所保存的地方。
④ 这些对象的具体使用方法在后面会进一步地介绍。
但并不是所有工程都包含这4类对象,新建的工程文件就只有一个Microsoft Excel对象。在后期工程编辑过程中,可以根据需要灵活增加和删除对象。对工程名“VBAProject(工作簿1)”单击鼠标右键,在弹出的子菜单中选择【插入】命令,即可选择插入的其他3个对象。类似地也可以将这些对象从工程中导出或者移除,也可以将一个工程中的某一模块用鼠标拖曳到同一个【工程资源管理器】窗口的其他工程中。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0038_0033.jpg?sign=1738811231-PKc9RCt1lzGIQoVGrb3JvYClFW9PJOfo-0-9e6ea0200e9a852b0b67b829d161a0e7)
⑷ 在【工程资源管理器】窗口下面是【属性窗口】,主要用于对象属性的交互式设计和定义,如下图,是Sheet1对象的属性窗口,通过该窗口,可以更改名称、显示方式等属性。该【属性窗口】的内容随着鼠标点击【工程资源管理器】窗口中不同的对象而变化。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0038_0034.jpg?sign=1738811231-zLHH2TXilwRqJG7zEFAAkdwnTJqADaTj-0-28099c249efa72d55e6168ed119ede1b)
⑸ 在【工程资源管理器】窗口中,每个对象都对应一个代码窗口,其中窗体对象不仅有一个代码窗口,还对应一个设计窗口。通过双击【工程资源管理器】窗口中这些对象,可以打开【代码窗口】,在【代码窗口】中可以输入相关代码。在代码窗口的顶部有两个下拉列表,左侧的列表用于选择当前模块中包含的对象,右侧的列表用于选择Sub过程、Function过程或者对象特有的时间过程,选择好这两部分内容后,即可为指定的Sub过程、Function过程或事件过程编辑代码。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0038_0035.jpg?sign=1738811231-9Z123lkfNsUiegw4KoIZS6enISzTV8aE-0-b5007751c49752c093bc1f84b360a4bb)
VBE开发环境,除了以上几部分外,常见的还有【立即窗口】。
⑹【立即窗口】在VBE中使用频率相对较少,主要用在程序的调试中,用于显示一些计算公式的计算结果,验证数据的计算结果。在开发过程中,可以在代码中加入Debug.Print语句,这条语句可以在立即窗口中输出内容,用来跟踪程序的执行。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0038_0036.jpg?sign=1738811231-Z9fA2VVL8hOJOflGIRHgIDyNVoP3xMgN-0-26ce365cadd00b576e545daae65f5529)
可以通过【视图】➣【立即窗口】来设置显示或者隐藏,如下图所示。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0038_0037.jpg?sign=1738811231-BDhfWr3YZE6KRaDjCtZBf3zRcbx5BHV5-0-ee9090911385d29ae39fa9e00a6951d1)
2.1.4 定制VBE环境
通过上面的学习,读者已经对VBE环境有了较为全面的认识。但是按照前面的方法打开的VBE环境是默认的环境,对于Office开发人员来说,在使用VBE进行代码的开发过程中,许多人都有自己的习惯,即对所使用的VBE环境进行某些方面的个性化定制,使得VBE环境适合开发人员自身的习惯。例如:
定制VBE环境可以通过【工具】➣【选项】命令,打开“选项”对话框,如下图所示,该对话框包括4个选项卡,可以通过这些选项卡对VBE环境进行定制。这4个选项卡分别实现以下个性化的环境定制。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0039_0038.jpg?sign=1738811231-Z1cTEjYWDbVc72S0NpFeznfzvBfuabxA-0-ef24fbeef0b9ac7db9ae41231f83fc25)
⑴ 【编辑器】选项卡:用于定制代码窗口的基本控制,例如自动语法检测、自动显示快速信息等、设置Tab宽度、编辑时是否可以拖放文本、过程控制符等。
⑵ 【编辑器格式】选项卡:用于设置代码的显示格式,例如代码的显示颜色、字体大小等内容。
⑶ 【通用】选项卡:用于进行VBA的工程设置、错误处理和编译处理。
⑷ 【可连接的】选项卡:用于决定VBA中各窗口的行为方式。
例如,【编辑器】选项卡中“自动语法检测”选项,如果选中该项,在输入一行代码之后,将进行自动检查语法,如果未选中该复选框,VBE通过使用与其他代码不同的颜色来显示语法错误的代码,并且不弹出提示对话框。
当然这些个性化定制因人而宜,开始学习的时候直接按照默认配置即可,不需另行设置,等熟练使用VBE后,再根据个人情况进行个性化配置。
2.1.5 VBE开发环境的退出
使用VBE开发环境完成VBA代码的编辑后,可以选择【文件】➣【关闭并返回到Microsoft Excel】命令,返回到Microsoft Excel 2010操作界面。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0039_0039.jpg?sign=1738811231-NuuI3rKoHJns1gyQbW5MyaWcad790DZr-0-411350cb541135383444b483800f29d1)
也可以使用【Alt+F4】组合键快速关闭VBE窗口,或者单击VBE窗口标题栏右侧的【关闭】按钮,也可快速关闭VBE窗口。
2.2 VBA程序应用实例
本节视频教学录像:4分钟
上一节已经介绍了VBA的集成开发环境,本书后续章节很多例子都是在这个环境进行代码编写的。下面我们先通过一个简单的例子,了解一下如何编写VBA程序。由于我们还没有开始学习VBA的语法,因此就用一个简单的例子看一下如何使用VBE开发环境,这个例子是在VBE环境中加入一个提示对话框,显示提示信息“您好,这是我的第一个VBA小程序”。
2.2.1 从零开始动手编写程序
下面详细给出创建步骤。
1 首先打开一个Excel 2010空文件。
2 执行【开发工具】 【Visual Basic】命令。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0040_0040.jpg?sign=1738811231-iedE43pDTAgx3jqOnFMdM9iz6JbiJJYz-0-08e675ebddb2fa6e6fc6159ddb12f67d)
3 即可打开VBA的开发环境。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0040_0041.jpg?sign=1738811231-S5HaTFCGzNm7IKQi8jZOVDEFkqh4CDk5-0-407bc88868717c821fba7cba2314d462)
4 在【工程资源管理器】窗口工程名“VBAProject(工作簿1)”上单击鼠标右键,在弹出的子菜单中选择【插入】 【模块】命令。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0040_0042.jpg?sign=1738811231-15FphRN5alh2heGtW54GNVxJlmAnqGdn-0-426caadd33fb0a344b6c538af2fbf347)
5 此时插入一个模块,可以在其中录入代码。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0040_0043.jpg?sign=1738811231-Qz52lzNg6iVZtyupKmxzj2neJXak2r43-0-8f1bc963280118cc1edd5a7f0b1819ec)
6 将鼠标首先移到代码窗口,单击鼠标左键,然后执行【插入】 【过程】菜单命令。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0041_0044.jpg?sign=1738811231-fAgxiLHAu3y8oAapdEihcMqMxjx0CnVM-0-37791659b6e932902a6b50348dd5544a)
7 在弹出的【添加过程】对话框中,在名称后面文本框中输入“first”,单击【确定】按钮。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0041_0045.jpg?sign=1738811231-aPP6oqLQ8XSJROKMjvoHFYlTqFlruDAn-0-2016d42232d79272eb90347834cf97c5)
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0041_0046.jpg?sign=1738811231-5WO7bjOQnT9jkvQrs4TcqCWoGAbemAL4-0-e80320f4623d90f506858a9422934140)
8 在弹出的【代码窗口】中录入文本。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0041_0047.jpg?sign=1738811231-qVDoCceOOq9ed9MxGbJinRTORBicYMZa-0-bb2e9f02b524bdc84b8fd758b56a2e19)
即添加了如下语句:
MsgBox "您好!这是我的第一个VBA小程序"
2.2.2 VBA程序
程序编写完成后,就可以测试一下效果,单击工具栏上的【运行】按钮,此时将显示出运行结果。
提示
也可以直接按快捷键【F5】实现程序运行。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0041_0048.jpg?sign=1738811231-LkyuSlj4LdJsw4jlLgS8cj57cNxLDAp1-0-f9c223f01bb0d2635b871d3b4d526f67)
2.3 综合实战—使用VBA的帮助系统
本节视频教学录像:3分钟
大多数用户都不大可能记住VBA所有的对象及其属性、方法和事件,也难以熟悉VBA函数的使用方法。因此获得有效的帮助将有利于代码的编写。在Windows应用程序中提供了在线电子文档的帮助系统,Office中也有这种帮助系统,下面就看一下在VBA中如何使用帮助系统。
当VBA的集成开发环境打开时,按【F1】键,可以弹出帮助对话框。在帮助对话框中输入查找的内容,例如“msgbox”,在对话框的下方会出现与所输入信息相关的内容,用鼠标单击所需查找帮助的内容,即可查找该函数的使用方法。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0042_0049.jpg?sign=1738811231-eZFOOwBJZdNBIeBoWZRGuEf3RaxGjfnJ-0-1b331f8c1ed41aa6c79fc41dd42d777a)
也可以在VBA的集成开发环境中,单击工具栏上的【帮助】按钮。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0042_0050.jpg?sign=1738811231-SWYBQHFHc9NlwRVUcxKbGUk5szc0S6WS-0-53dfe398bf01ee9354cbd09158ffe1ed)
或者执行【帮助】➣【Microsoft Visual Basic for Application帮助(H)】菜单命令。
![](https://epubservercos.yuewen.com/4E8DCD/3731468603541401/epubprivate/OEBPS/Images/figure_0043_0051.jpg?sign=1738811231-ORHWTQCHu9tGSrBtS903OWW8jbPfs9ob-0-10efe4b553cb62f33df5a90ebdd84809)