首页 > 解决方案 > 打开 Word 时不会触发 Word VBA AutoNew 宏

问题描述

使用 Word 2013。

我发现这个之前的问题是相似的,但没有接受的答案,我也不想构建一个加载项,所以我希望我不需要复杂的东西。

我的 Normal.dotm 中有 AutoNew 和 AutoOpen 宏。它们工作得很好,只是当我从任务栏或其他图标打开 Word 时它们都不会触发。在这种情况下,Word 打开时显示空白“Document1”,但没有我想要的初始化。

假设我的宏在打开或创建文档时显示带有文档名称的消息。我知道这很愚蠢,但这似乎是一个可行的例子。

如果我通过在文件资源管理器中单击文档或使用 File | 打开文档 打开或归档 | 新建,然后会触发相应的宏并弹出消息。

但是,如果我只是从头开始打开 ​​Word,则不会触发宏,并且没有显示“Document1”的消息。

我尝试使用 AutoExec 来解决这种情况,但是当 AutoExec 触发时,没有活动窗口,也没有加载文档。

想法?

标签: vbams-word

解决方案


问题中引用的示例不是“可行的”,因为想要显示自动生成的文档的名称是没有意义的。

在任何情况下,只有AutoExec在 Word 应用程序启动时才会触发 - 这是设计使然。AutoNew在应用程序启动时 Word 创建新的默认文档时不会触发。(您还会注意到,如果您立即打开另一个文档,而不对默认文档执行任何操作,该文档会自动关闭。从某种意义上说,此默认文档在用户对其采取操作之前不存在。)

可行的是在 AutoExec 期间显式创建一个新文档。这将产生一个代替默认文档的文档的效果。该文档将与该默认文档具有相同的名称。唯一不同的是,当打开另一个文档时,该文档不会自动关闭。

创建文档时,将触发AutoNew(和)。Document_New

Sub AutoExec()

    Documents.Add

End Sub

推荐阅读