大家好,我是永不止步的老牛。
上一篇我们介绍了VBA的一些基本概念,本篇我们介绍VBA编辑器,工欲善其事,必先利其器,善用编辑环境的功能,能对我们的开发带来极大帮助。
启动后的VBA编辑器默认有三个窗口,左边是“工程资源管理器”和“属性”窗口,右边是“代码”窗口。
VBA编辑器还有对象浏览器、立即窗口、本地窗口、监视窗口。
本篇将介绍几类窗口及调试VBA程序的工具栏。
1.工程资源管理器
工程资源管理器默认是以分类形式显示当前工程中所有对象。在顶部有3个按钮,分别为“查看代码”、“查看对象”、“切换文件夹”。
选择其中一个对象后,点击“查看代码”,会把该对象对应的代码显示在代码窗口内;
如果选择的对象是“模块”或“类模块”,因为没有对应的窗体,“查看对象”按钮会暗显,如果选择的对象是“Microsoft Excel 对象“,点击“查看窗体”,会切换到Excel编辑页面对应的Sheet页,如果选择的对象是”窗体” ,点击“查看窗体”,会显示该对象对应的窗体,如图
“切换文件夹“是将资源列表按照”分类“和”不分类“两种展示方式,进行切换,默认是分类展示资源,不分类展示如下图
在资源列表中,点击鼠标右键,会弹出如下图菜单
根据所选资源不同,菜单会显示当前可用项,不可用项暗显。
最上面3项对应前面刚说的3个按钮,“切换文件夹“会一直亮显;
“VBAProject属性“显示工程属性窗口,可以修改工程名称和设置工程保护,工程保护就是给工程设置密码,想查看代码前,需要输入密码,“VBAProject属性“会一直亮显;
“插入”可以新增窗体、模块、类模块3类资源,会一直亮显;
“导入文件”是将磁盘文件添加到工程内,会一直亮显;
“导出文件”是将选中对象保存到磁盘上,选择的是工程或分类名称时暗显;
“移除”是将选中对象删除掉,删除前会出提示窗体询问删除前是否要先导出,选择的是工程或分类名称时暗显;
“打印”会调出打印窗口,会一直亮显;
“可连接的”是指工程资源管理器窗口是否能停靠,会一直亮显;
“隐藏”是指将工程资源管理器窗口隐藏起来,会一直亮显,隐藏后的工程资源管理器窗口可以通过顶部菜单“视图”打开显示,或按快捷键Ctrl+R打开显示。
2.属性窗口
属性窗口是显示所选择对象的所有属性信息,可以方便的在属性窗口中直接设置所选对象的属性。
“对象下拉框”内是资源管理器所选对象中包含的所有对象,比如说资源管理器中选择的是个窗体文件,这个窗体文件上放置了一个按钮和文本框,那么这个下拉框内将显示3项:窗体、按钮、文本框。左边是“对象下拉框”选中对象的所有属性,右边是属性对应的属性值,可以在右侧直接修改。
在“对象下拉框”下面有2个面板“按字母排序”和“按分类排序”,就是将属性列表按不同的形式展示。
3.代码窗口
代码窗口用于显示、编写、调试VBA代码,窗体、模块、类模块、工作表、工作簿、控件的代码都在这个窗口编辑。
代码编辑区域就是我们写VBA代码的地方,“对象下拉框”可以选择“通用”和对象,如果选择的是“通用”,“过程/事件下拉框”显示“声明”和过程名称,如果选择的是对象,“过程/事件下拉框”显示该对象的所有事件,选择一个事件后,该事件的VBA程序代码将会显示在代码编辑区域。
“拆分栏”是将代码编辑区域拆分成上下两部分,可以分别显示不同的代码,主要是调试代码段特别长的过程时方便进行比较查看。
左下角按钮是切换两种代码区域展示方式。
4.对象浏览器
对象浏览器可以查看VBA可用对象,以及它们的属性,方法和事件。
对象浏览器窗口的上部显示“工程/库”下拉列表,这里列出了所有库名称以及当前VBA工程里可用的所有工程名称。 “Excel”库,表示仅仅能在Excel里执行的对象名称,VBA库列出了所有能在VBA里执行的对象名称。
在“工程/库”下拉列表框下面,有一个“搜索”文本框,可以在某个库里搜索想要的信息。在对象浏览器的任何地方单击右键,在快捷菜单上选择“全字匹配”,就只搜索匹配整个字的内容。
对象浏览器上的“搜索结果”显示符合搜索条件的库,类和成员。当你输入搜索文本并且单击搜索按钮,VB展开对象浏览器对话框以显示搜索结果。点击“望远镜”按钮右边的“显示/隐藏搜索结果”来显示或者隐藏搜索结果。
类列表框显示所选中的库里面所有可用的对象类,如果你选择VBA工程,列表显示该工程里的对象。选中一个类后,右边的列表显示该类可用的属性,方法和事件。右边列表选中某项后,下方区域会显示该项的描述信息。
我们库选中VBA,搜索框输入Abs,再按F1,将会显示Abs函数的信息。
5.立即窗口
立即窗口可以理解成是命令行窗口,输入VBA命令后按回车键可以直接执行,可以在程序执行中设置断点,等程序执行到断点处暂停时,在立即窗口输入命令进行查看或设置。
也可以直接在程序代码中把一些信息直接输出到立即窗口,方便调试,这种好处是不需要设置断点,用Debug.Print命令可以将需要监视的信息输出到立即窗口。
6.本地窗口
在调试程序时,本地窗口会显示所有在当前过程中的变量声明和变量值。
列表中有“表达式”、“值”、“类型”3列数据,分别显示表达式、表达式数值、数据类型。
列表中的第一个变量,如果是类模块,会用
表示,以树形显示所有模块层次变量,如果是其他模块,显示的是模块名称。
本地窗口中的表达式列不能编辑,不能访问全局变量。
7.监视窗口
监视窗口是调试程序的利器,在程序执行到断点处,我们可以根据需要添加监视表达式,添加后,表达式的值就会显示在监视窗口中,监视窗口包含“表达式”、“值”、“类型”、“上下文”4列,“表达式”是我们输入需要监视其值的表达式,“值”是程序触发中断时表达式的值,“类型”值监视表达式的数据类型,“上下文”指表达式所在模块。
在监视窗口右键,在弹出菜单中选择“添加监视”,弹出添加监视窗体。
在文本框中输入我们需要监视的表达式,上下文是设置表达式的计算范围,这个范围一般是设置的小一点,因为一旦设置好监控表达式,程序每执行一步,都会重新计算表达式的值,如果设置的范围太大,程序执行的速度会明显下降。
“监视类型”是指定如何响应监视表达式:
“监视表达式”:显示监控表达式的值;
“当监视值为真时中断”:就是当表达式的值为True时,中断程序执行;
“当监视值改变时中断”:就是当表达式的值发生改变时,中断程序执行。
8.调试VBA程序的工具栏
当我们编写一段程序后,需要试运行来确认程序正确性,发现程序中存在的各种问题并进行修改,这就是调试程序,编写程序的大部分时间是花费在调试程序上。
调试需要用到调试工具栏,调试工具栏可以运行程序、中断程序运行、停止程序运行、设置断点、逐语句执行、逐过程执行、跳出当前过程,前面说到的调出本地窗口、立即窗口、监视窗口的按钮、快速添加监视的按钮,以及显示调用堆栈窗口。
“设计模式切换”按钮是一个开关键,就是在设计模式和非设计模式之间进行切换,当为设计模式时,工程中的代码将不被执行且工程中的事件也不被执行,当为非设计模式时,意味着代码可以被执行。
“运行”指运行过程、窗体或宏,若国光标处在一个过程体内,则是运行这个过程,如果处在激活状态的窗体,则是运行这个窗体,否则就是运行宏。
“中断”指将正在运行的程序暂停执行。
“停止”指清除当前堆栈及模块级变量,重置工程,就是使运行的程序停下来。
“断点”按钮是一个开关键,就是对光标所在行设置断点或取消断点。
“逐语句”指程序运行时,一条语句一条语句的执行代码。
“逐过程”指程序运行时,一个过程一个过程的执行代码。
“跳出”指跳出当前正在执行的过程,继续执行后续的代码。
“本地”、“立即”、“监视”指分别调出“本地窗口”、“立即窗口”、“监视窗口”。
“快速监视”弹出快速添加监视窗体,可以对光标所在表达式快速添加监视,如图:
“调用堆栈”指调出“调用堆栈”窗口,显示在中断模式期间活动的过程调用,当执行一个过程中的代码时,该过程会添加到活动的过程调用列表。每次过程调用其他过程,便会添加列表,被调用的过程在执行完回到原调用过程时,便会从列表中删除掉。当程序代码复杂,过程调用很多时,可以通过该窗口了解当前代码过程调用情况。
VBA编辑器的大致内容就介绍到这里,还有一些细节等我们后续碰到时再细说,下一篇文章我们介绍过程和函数以及MsgBox函数、InputBox函数、InputBox方法。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.