尽管可以使用上一个技巧中的方法从另一个宏运行VBA宏,但有时这种方法无法胜任。相反,您需要寻找一种允许使用故障安全方法运行宏的解决方案。一种方法是在VBA中使用“呼叫”命令。但是,在使用命令之前,您需要向调用项目添加项目引用。 (项目是VBA如何引用模板中VBA模块,表单等的集合。例如,VBA将Normal.dot模板称为“ Normal”项目。)项目之间的引用提供了在项目之间的明确定义的链接。调用项目和要调用的项目。

例如,假设MyMacro宏(您要运行的宏)是CoolDoc模板的一部分。若要在VBA中正确使用“调用”,您需要将对CoolDoc.dot项目的引用添加到将调用MyMacro的宏中。不幸的是,由于VBA中可能存在“陷阱”,所以说起来容易做起来难:除了“正常”之外

项目,VBA为所有用户创建的模板项目提供默认项目名称“ TemplateProject”。这可能会造成问题,因为当希望具体说明要运行的宏时,最好使用唯一的项目名称。若要给CoolDoc.dot一个唯一的项目名称,请按照下列步骤操作:

。确保CoolDoc.dot模板已打开。

。通过按Alt + F11来显示VBA编辑器。

。在VBA编辑器左上方的“项目”窗口中,右键单击模板的文件夹。该文件夹将被命名为Project(CoolDoc)。 Word将显示一个上下文菜单。

。从上下文菜单中选择项目属性选项。显示“属性”对话框。

。在项目名称字段中,为您的项目输入合适的名称。

(CoolDoc是唯一的名字,只要它是唯一的。)

。单击确定。对话框消失,项目重命名为CoolDoc。

如果展开CoolDoc下的所有对象,则应在项目中看到一个或两个模块。 (请记住; VBA宏包含在模块中。)为了便于讨论,我们假设MyMacro(您要运行的宏)包含在CoolDoc项目的HotStuff模块中。

(所有这些对象名称将很快使用。这时,您只需要注意用于项目和带有宏的模块的名称即可。)

现在您可以将CoolDoc项目引用实际添加到将要从中调用宏的项目中。在这种情况下,假设您将从Normal项目中的宏调用它。您可以按照以下步骤添加参考(假设VBA编辑器仍处于打开状态):

。在VBA编辑器左上方的“项目”窗口中,选择“普通”文件夹。

。从工具菜单中选择引用。显示“引用”对话框。 (请参见图1。)

。在可用参考列表中,找到CoolDoc。

。确保选中CoolDoc选项左侧的复选框。

。单击确定。

最后,您准备好将Call语句添加到要从中调用MyMacro的宏中。命令行将如下所示:

Call CoolDoc.HotStuff.MyMacro

此命令行使VBA运行所需的宏,而不会产生任何歧义。但是,有一些重要的注意事项。

在Normal中放置对CoolDoc项目的引用会使Normal在每次启动Word时加载CoolDoc的副本,即使没有打开基于CoolDoc.dot模板的文档。

加载CoolDoc引发了一个明显的问题:在VBA中,将MyMacro放在CoolDoc.dot中有什么意义,因为它不会节省加载时间或资源使用量?简短的答案是,除了CoolDoc.dot可能是更明显的放置仅与CoolDoc.dot中的内容相关的代码的地方以外,没有任何意义。 (明智的项目设计的整个主题实在太大了,无法在本文中讨论。)

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(86)适用于Microsoft Word 97、2000、2002和2003。您可以为Word(Word 2007)的功能区界面找到此技巧的版本。和更高版本)在这里: