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