1.2 看看Visual Basic编辑器的构成
Visual Basic编辑器中存在着大量的子窗口,用户可以使用这些子窗口来完成代码的编写、工程的添加和程序的调试等各种工作。下面将对VBE中常用的子窗口进行介绍。
1.2.1 认识工程资源管理器
在Excel中,每一个工作簿就是一个工程,该工程的默认名称为VBAProject(工作簿名)。工程资源管理器中最多将显示4类对象,即Excel对象(包括Sheet对象和ThisWorkbook对象)、窗体、模块和类模块。这4类对象在工程资源管理器中分别置于对应的文件夹中,如图1-9所示。
在工程资源管理器的任意位置右击,选择关联菜单中的“插入”命令,在下级菜单中选择需要插入的对象,如图1-10所示。
图1-9 工程资源管理器
图1-10 在工程资源管理器中插入对象
在工程资源管理器中的“模块”选项上右击,在关联菜单中选择“导出文件”命令将打开“导出文件”对话框。在对话框中选择保存文件的文件夹,并设置文件名,如图1-11所示。单击“保存”按钮关闭该对话框,模块将被保存为“*.bas”。
图1-11 “导出文件”对话框
提示:工程资源管理器中的导出操作不仅针对模块,还可以用于其他对象。窗体文件保存时扩展名为“.frm”,类模块的扩展名为“.cls”。这些导出的文件实际上都是文本文件,可以使用Windows自带的记事本将其打开并查看其内容。另外,在工程资源管理器中右击,选择关联菜单中的“导入文件”命令能够将保存的模块文件导入。
1.2.2 认识“属性”窗口
“属性”窗口用来设置对象的属性。VBA是面向对象的程序设计语言,程序设计的一个重要工作就是设置对象的属性。Visual Basic编辑器提供了一个“属性”窗口,使用该窗口可以对各种对象的属性进行设置。
在Visual Basic编辑器中,选择“视图”|“属性窗口”命令打开“属性”窗口,窗口中列出对象所有可用的属性。打开“按字母序”选项卡,属性将按照字母顺序排列。打开“按分类序”选项卡,属性按照分类来排列,如图1-12所示。
图1-12 属性类排列
在工程资源管理器中选择一个对象,在“属性”窗口中即可以对该对象的属性进行设置。如对工作簿中的Sheet1工作表更名,可以在“属性”面板中进行。具体的操作步骤是,在工程资源管理器中选择第一个工作表,在“属性”窗口对Name属性进行设置,如图1-13所示,此时,工作表名称即被更改。这种改变在Excel的工作表标签上也会显示出来,如图1-14所示。
图1-13 设置Name属性
图1-14 工作表名称改变
对象的某些属性值只能设置为某些指定的常量,这样的属性可以通过下拉列表来选择。如设置工作表对象的EnableSelection属性,可以在选择该设置项后单击设置栏右侧的下三角按钮,在打开的列表中选择可用的属性值,如图1-15所示。
图1-15 在列表中选择属性值
1.2.3 认识“代码”窗口
VBE的“代码”窗口用于查看和编辑VBA程序代码,对VBA应用程序的编写就在这个窗口中进行。Excel VBA是以过程的方式来组织程序的,一个过程就是一个完成特定任务的代码集合。工程资源管理器中每个对象都有自己的“代码”窗口,每一个对象的过程代码都是在“代码”窗口中编写完成的。
VBE中“代码”窗口的结构如图1-16所示。
图1-16 “代码”窗口
“代码”窗口的“对象”列表用来在当前模块的各个对象之间切换,“过程/事件”列表可以用来选择需要使用的过程或对象事件。如果在该列表中选择的是过程,则插入点光标会自动放置到该过程的第一行处,如图1-17所示。如果选择的是对象的事件,则将会在“代码”窗口中创建事件过程。
图1-17 选择过程
在“代码”窗口中拖动分隔条,能够将“代码”窗口分为两个窗格并设置这两个窗格的大小,如图1-18所示。如果过程代码很长,通过分隔“代码”窗口可以在不同的窗格中查看代码的不同部分,就像图1-18中那样。如果“代码”窗口中有多段代码,则可以在两个窗格中分别查看不同的过程。
图1-18 拖动分隔条分隔“代码”窗口
在“代码”窗口中,当“过程视图”按钮处于按下状态时,窗口中一次将只显示一个过程代码。如果按下“全模块视图”按钮,“代码”窗口中将显示模块的所有过程,如图1-19所示。
图1-19 显示多个过程
1.2.4 认识“立即窗口”
在VBE中,“立即窗口”用来显示程序运行结果。在默认情况下,立即窗口是隐藏的,选择“视图”|“立即窗口”命令能打开“立即窗口”。
在“立即窗口”中可以直接输入VBA代码并显示生成的结果。如在“立即窗口”中输入Range("A1")=5*3,按Enter键后将在工作表的A1单元格中获得需要的计算结果,如图1-20所示。
图1-20 在“立即窗口”中输入代码
“立即窗口”是在编写VBA代码时显示代码结果的场所,VBA的Print方法用来显示程序的运行信息,这个信息就显示在“立即窗口”中。如下面语句将在“立即窗口”中显示数值15。
Debug.Print 3*5
在编写VBA应用程序时,借助于Print方法,使用“立即窗口”可以对代码进行检测,查询程序中变量的值,调试程序时查看程序的输出情况。