3.2 工程资源管理器
在VBE中,每个打开的Excel工作簿或加载宏都被看作一个“工程”,集中放置在工程资源管理器中进行管理。
3.2.1 工程资源管理器的组成
工程资源管理器窗口如图3-6所示,该图中列出了两个工程,一个名为“Book1.xlsm”,另一个名为“库存管理.xls”。在工程资源管理器中,以树形结构来管理各工程。单击工程名称左侧的加号“”按钮将展开工程资源,单击工程名称左侧的减号“”按钮将折叠工程资源。
图3-6 工程资源管理器窗口
注意:如果某个工程设置了密码保护,单击工程名称左侧的加号“”按钮时将要求用户输入密码。
如图3-6中展开了工程“Book1.xlsm”,可看到其中包括一个“Microsoft Excel对象”节点,该节点不但包括工作簿中的每个工作表和图表,还包括“窗体”和“模块”节点。“窗体”节点中包括该工程中设计的用户自定义窗体;“模块”节点中包括在Excel中录制的宏,以及用户编写的VBA代码等。VBA工程中可以包括以下对象:工作表(图表)、模块、类模块、窗体、引用。
工程资源管理器上方有三个按钮,第一个按钮为“查看代码”,用来显示当前选中的模块的代码窗口;第二个按钮为“查看对象”,用来显示Excel对象文件夹中所选择的工作表或者窗体文件夹里面的窗体;第三个按钮为“切换文件夹”,用来隐藏或显示工程窗口里的文件夹。
在默认情况下,工程资源管理器停靠在VBE窗口的左上角。拖动其标题栏,可使其浮动于代码窗口之上。在浮动的工程资源管理器标题栏上双击,可使其恢复到停靠状态。
3.2.2 管理工程资源
通过工程资源管理器可方便地查看各对象的代码,此外还可进行插入对象、导入导出文件等操作。在工程资源管理器的某个对象上单击右键,弹出快捷菜单,选择相应的菜单命令即可对工程资源进行管理。对窗体、模块和类模块的管理操作基本相同,下面以模块的操作为例演示具体操作方法。
1.插入模块
在Excel环境中录制宏时,系统将自动在工程中插入一个VBA模块,并将录制的宏代码放在该模块中。
技巧:在Excel工作簿打开期间,录制的宏都将放在一个模块中。如果关闭该工作簿,下次再打开并录制宏时,Excel又将插入一个新的模块。
在VBE环境中,若需要向工程中添加一个新的VBA模块,在工程资源管理器的某个对象上单击鼠标右键,在弹出的快捷菜单中选择“插入”|“模块”命令即可,如图3-7所示。
图3-7 插入模块
技巧:在VBE环境中,选择菜单中的“插入”|“模块”命令也可向工程资源管理器中插入一个模块。
2.删除模块
如果准备从工程中删除一个模块,可按以下步骤操作。
步骤1 在工程资源管理器中需要删除的模块的名称上单击鼠标右键,弹出如图3-8所示的快捷菜单。
图3-8 删除模块
步骤2 在快捷菜单中选择“移除 模块3”命令即可将该模块删除。其中的“模块3”是准备删除的模块名称。
技巧:在VBE环境中,选择需要删除的模块,再选择菜单“文件”|“移除模块3”命令也可从工程资源管理器中删除“模块3”。
3.导出模块
在Excel应用程序的开发过程中,随着开发项目的增加,将会积累一些通用的代码。可将工程中这些通用的代码导出保存,在需要的工程中再导入并直接调用即可。导出模块的操作步骤如下。
步骤1 在工程资源管理器中需要导出的模块名称上单击鼠标右键,弹出如图3-9所示的快捷菜单。
图3-9 导出文件
步骤2 在快捷菜单中选择“导出文件”命令,打开如图3-10所示的对话框,输入导出文件的名称,单击“保存”按钮即可将选中模块的代码保存为一个扩展名为“.bas”的Basic代码文件。该文件为文本文件格式,可用记事本打开。
图3-10 保存文件
技巧:导出的对象不同,其扩展名也不同:对于模块其扩展名为“.bas”;对于窗体其扩展名为“.frm”;对于类模块其扩展名为“.cls”。
4.导入模块
与导出操作相反,导入模块操作可将Basic代码文件导入到当前工程中。具体操作步骤如下。
步骤1 在工程资源管理器中需要导入的模块名称上单击鼠标右键,弹出如图3-9所示的快捷菜单。
步骤2在快捷菜单中选择“导入文件”命令,打开“导入文件”对话框,如图3-11所示。选择需要导入的文件(扩展名为“.bas”),单击“打开”按钮即可。
图3-11 “导入文件”对话框
技巧:若要将某个模块复制到另一个工程中,最快的方法是:打开两个工程文件,在工程资源管理器中将模块从一个工程拖到另一个工程中即可。