Excel任务的自动化其实就是将一系列的Excel操作用程序去实现。程序的编写和调试需要在特定的开发环境下进行。VBE(Visual Basic Editor)就是Excel提供的专门用于编辑和调试VBA程序的编辑器。
打开Excel应用程序,在“开发工具”选项卡下点击“Visual Basic”按钮或者直接按下快捷键组合Alt+F11即可打开VBE窗口,其主要组成部分如图1-16所示。
图1-16 VBE窗口
窗口中主要包括菜单栏、工具栏、工程资源管理器、代码窗口、属性窗口、立即窗口、监视窗口等。这些窗口模块可以通过视图菜单中的相应命令进行显示和隐藏。以下是对VBE窗口主要组成模块的简单介绍:
①菜单栏是VBE窗口最重要的组成,包括文件、编辑、视图、插入、格式、调试、运行、工具、外接程序、窗口和帮助等共11个菜单项,使用这些菜单项可以完成编辑器几乎所有的功能。
②工具栏提供了常用的命令按钮,能够帮助我们更加高效便捷的对程序进行编辑、调试和管理。除默认显示的常用按钮外,我们还可以通过选择菜单中的“视图”→“工具栏”,对编辑、调试等工具栏进行显示。
③工程资源管理器中包含了当前Excel应用程序中所有的VBA工程。每一个VBA工程对应着一个打开的Excel文件(即工作簿)。每个VBA工程目录下又包括了其对应工作簿中的Excel对象、用户窗体、模块、类模块等资源。Excel对象主要是指工作簿以及工作簿中的工作表对象。如图1-16所示,ThisWorkbook表示当前对应的工作簿,Sheet1、Sheet2、Sheet3分别表示该工作簿中三张现有的工作表。新建一个工作簿时,其在工程资源管理器中对应的VBA工程目录下默认只有工作表对象和ThisWorkbook工作簿对象。用户窗体、模块、类模块等对象需要通过“插入”菜单进行添加,如图1-17所示。添加后在工程资源管理器中自动生成其目录,如图1-18所示。
图1-17 插入菜单
图1-18 新添加对象
④属性窗口列出了工程资源管理器中所选对象的所有属性以及属性的值。用户可以对属性的值进行查询和修改。
⑤代码窗口是VBE中必不可少也是最常用的窗口。当用户在工程资源管理器中双击某个对象时,其对应的代码窗口会自动打开,用户可以在其中编辑和调试代码。工程资源管理器中的每个对象都对应着一个代码窗口。当多个代码窗口同时打开时,只有一个处于活动状态。
⑥立即窗口主要功能有两个:执行单句代码;显示使用语句Debug.Print输出的结果。
⑦监视窗口用于观察代码调试时在中断模式下对象以及变量的变化。
VBE是嵌入在Excel中的Visual Basic编辑器,它提供了一系列的工具用于对VBA程序进行管理。下面我们就举例介绍如何使用VBE去完成VBA程序的创建、运行、调试以及保存等功能。
【 例 1-2 】 编写VBA程序,实现在活动工作簿中自动新建工作表并将其重命名为“员工考勤”。
【操作步骤】
1.首先,打开VBE窗口,点击菜单“插入”→“模块”,在工作簿中新建“模块1”,并双击该模块对象打开其代码编辑窗口,如图1-19所示。
图1-19 新添加模块1
2.将光标定于“模块1”对应的代码窗口中,点击菜单“插入”→“过程”,在打开的“添加过程”对话框中输入过程名等信息,如图1-20所示。点击“确定”按钮,在“模块1”对应的代码窗口自动生成自定义过程框架,如图1-21所示。
图1-20 添加自定义过程
图1-21 自定义过程框架
3.在“AddSheet”过程框架中输入代码,实现自动新建名为“员工考勤”工作表的功能。如图1-22所示。
图1-22 本例自定义过程代码
4.点击工具栏中的 按钮(如图1-23所示)或者按下F5功能键,运行“模块1”中的AddSheet过程。执行代码后,当前工作簿中新增一张名为“员工考勤”的工作表,如图1-24所示。
图1-23 程序运行按钮
图1-24 本例代码执行效果
5.如代码需要保存,则将其所在工作簿保存类型设为“Excel启用宏的工作簿”。
说明:
我们一般把自定义的子过程和函数保存在模块对象的代码窗口中,把工作簿的事件代码放在ThisWorkbook对象的代码窗口中,把工作表的事件代码保存在各自工作表对象的代码窗口中。录制的宏均保存在模块对象中。
VBE提供了调试工具栏用于对代码进行运行和调试,其在VBE窗口中默认为显示状态,也可通过视图菜单中的相关命令对其进行显示和隐藏的设置。如图1-25所示,调试工具栏中的 是运行和调试VBA程序时最常用的三个按钮。
图1-25 调试工具栏
当程序中存在语法错误时,点击运行按钮( )运行程序后,VBE弹出消息框,提示错误信息,同时将错误位置突出显示,如图1-26所示。点击“确定”按钮后,程序进入中断模式,如图1-27所示,中断按钮( )变为不可用状态。点击重新设置按钮( )可停止程序的运行。
图1-26 程序出错提示
图1-27 中断模式
如需对程序进行跟踪调试,可在设计模式下(即代码编辑状态)将光标定位到相关行,点击菜单“调试”→“切换断点”或者直接点击调试工具栏中的切换断点按钮( ),对相应语句行设置断点,如图1-28、图1-29所示。
图1-28 设置断点
图1-29 断点设置效果
设置断点后,运行程序,代码执行至断点处会自动暂停,同时标识出暂停的位置,如图1-30所示。我们可将需要跟踪的变量添加至监视窗口,对其值的变化进行观察,如图1-31、图1-32、图1-33所示。如果程序语句较多,我们还可以通过反复点击语句调试按钮( ),使程序从设置断点处逐条向下执行语句,直到找到出错位置及出错原因。找出错误并进行更正后,点击运行按钮,完成剩余程序的执行。
图1-30 程序运行中断点行突出显示效果
图1-31 添加监视
图1-32 “添加监视”对话框
图1-33 监视窗口
对VBA程序进行调试时,我们除了可以点击相应的菜单以及工具按钮外,还可以通过按下快捷键完成相同的功能,从而提高调试程序的效率。主要调试功能对应的快捷键如表1-1所示。
表1-1 VBA代码调试快捷键
VBE为Excel的自动化提供了良好的程序开发和调试的环境,同时也弥补了Excel宏录制的不足。对于初学者而言,熟练掌握Visual Basic编辑器的使用是学习VBA编程的基础。