此篇是Microsoft Office VBA 学习日记(一)的附属笔记。
在VBA(Visual Basic for Applications)中,“工程资源管理器”(通常称为"项目资源管理器")是VBA编辑器中的一个窗口,它提供了一个组织结构,用于显示和导航当前打开的所有VBA项目。一个VBA项目通常与一个Excel工作簿、Word文档或其他Office文件关联。
"工程资源管理器"是VBA开发中不可或缺的工具,它为编程提供了便捷的组织和导航手段,特别是在处理包含多个模块和组件的复杂项目时。
如果"工程资源管理器"不在屏幕上显示,可以通过以下步骤来打开它:
Alt
+ F11
)。Ctrl
+ R
。以下是"工程资源管理器"中一些关键特征的详细解释:
"工程资源管理器"以树形结构显示每个加载的VBA项目。可以展开和折叠树来查看每个项目的组成部分,每个项目展开后,至少显示一个节点——“Microsoft Excel对象”。这个节点展开后,会为工作簿中的每个工作表(每个工作表都被视为一个对象)显示一个项,还会显示另一个名为ThisWorkbook的对象(它代表的是Workbook对象)。如果项目中包含任何VBA模块,那么项目列表还会显示“模块”节点。
总结:这个窗口中列出了项目中的所有组件,如:
以下是每个组件的详细解释:
标准模块是存储 VBA 代码的容器,包括子程序(Sub)和函数(Function)。这些代码通常是与特定工作表或工作簿无关的过程,可以从工作簿的任意部分调用。例如,可以在标准模块中编写一个计算税额的函数,并在整个工作簿中的任意地方使用它。
类模块允许定义自己的对象类型,包括属性、方法和事件。通过类模块,可以创建具有特定行为和特性的自定义对象,使得代码更加模块化和可重用。例如,可能会创建一个 “Employee” 类,它具有姓名、职位和工作方法等属性。
用户表单是 VBA 中的图形用户界面元素,允许创建自定义的对话框,用户可以通过它与的宏进行交互。用户表单可以包含文本框、列表框、按钮等控件,可以定义这些控件的行为,以及当用户与它们交互时如何处理数据。
在 Excel VBA 中,每个工作表都有一个与之关联的代码模块,称为工作表对象。在这个模块中,可以编写特定于该工作表的事件处理代码,例如当用户选择该表时运行的代码,或者当该表的数据发生变化时运行的代码。
ThisWorkbook 对象代表包含 VBA 代码的那个工作簿。这个对象的代码模块可以包含处理整个工作簿级别事件的代码,如打开工作簿、关闭工作簿、在工作簿中添加新工作表等。在 ThisWorkbook 对象中编写的事件处理程序只会影响该工作簿,而不是其他可能打开的工作簿。
以下是 “ThisWorkbook” 对象的一些详细说明和使用场景:
“ThisWorkbook” 对象可以包含事件处理程序代码。这些事件可以是打开工作簿(Workbook_Open
)、关闭工作簿(Workbook_BeforeClose
)、保存工作簿(Workbook_BeforeSave
)等。事件处理程序能够在这些特定的操作发生时自动执行代码。
例如,如果想在工作簿打开时运行某个宏,可以在 ThisWorkbook
的代码页面中添加如下代码:
Private Sub Workbook_Open()
' 运行想要执行的宏
Call MyMacro
End Sub
还可以使用 “ThisWorkbook” 对象来保存或关闭工作簿,而不需要激活或选择工作簿。例如:
ThisWorkbook.Save
或者
ThisWorkbook.Close SaveChanges:=False
通过 “ThisWorkbook” 对象,可以访问工作簿内的各种内容,包括工作表(Worksheets
或 Sheets
集合)、名称(Names
集合)、窗口属性(Windows
集合)等。
举例来说,如果想要遍历 “ThisWorkbook” 中的所有工作表并打印它们的名称,可以使用如下代码:
Sub PrintSheetNames()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Debug.Print ws.Name
Next ws
End Sub
“ThisWorkbook” 与 “ActiveWorkbook” 的区别在于 “ThisWorkbook” 始终指向包含代码的工作簿,而 “ActiveWorkbook” 指向当前活动的工作簿,即用户当前正在查看的工作簿。如果 VBA 宏在被用户调用时,他们可能会打开多个工作簿,则 “ThisWorkbook” 是确保代码作用于正确工作簿的安全方式。
通过双击"工程资源管理器"中的任何对象,可以打开代码视图或设计视图。代码视图允许编写和查看VBA代码,而设计视图则用于设计和修改用户表单。
可以使用"工程资源管理器"来快速导航到项目中的不同部分,进行添加、删除和重命名操作。还可以从这个窗口右键点击某个元素来访问相关操作,如导入文件、导出组件等。