[英]Word VBA AutoNew macro not firing when opening Word
使用 Word 2013。
我发现这个以前的问题是相似的,但没有被接受的答案,我不想构建一个加载项,所以我希望我不需要复杂的东西。
我的 Normal.dotm 中有 AutoNew 和 AutoOpen 宏。 它们运行良好,只是当我从任务栏或其他图标打开 Word 时,它们都不会触发。 在这种情况下,Word 会以空白的“Document1”打开,但没有我想要的初始化。
假设我的宏在打开或创建文档时显示带有文档名称的消息。 我知道这很愚蠢,但这似乎是一个可行的例子。
如果我通过在文件资源管理器中单击文档或使用 File | 打开文档打开或文件 | 新建,然后将触发相应的宏并弹出消息。
但是,如果我只是从头开始打开 Word,则不会触发宏,也不会显示“Document1”消息。
我尝试使用 AutoExec 来解决这种情况,但是当 AutoExec 触发时,没有活动窗口,也没有加载文档。
想法?
问题中引用的示例不“可行”,因为想要显示自动生成的文档的名称是没有意义的。
在任何情况下,只有AutoExec
会在 Word 应用程序启动时触发 - 这是设计使然。 当 Word 在应用程序启动时创建新的默认文档时, AutoNew
不会触发。 (您还会注意到,如果您立即打开另一个文档,而不对默认文档进行任何操作,该文档将自动关闭。从某种意义上说,此默认文档不存在,直到用户对其进行操作。)
可以工作的是在 AutoExec 期间显式创建一个新文档。 这将具有生成文档代替默认文档的效果。 该文档将具有与该默认文档相同的名称。 唯一不同的是,当打开另一个文档时,该文档不会自动关闭。
创建Document_New
将触发AutoNew
(和Document_New
)。
Sub AutoExec()
Documents.Add
End Sub
在 Word 2016 中,64 位 AutoOpen 在 AutoExec 之前触发。 因此,如果您打开一个文件,当 AutoExec 运行时,您只能在没有文件已打开的情况下打开一个新文件。 因此,当您打开一个文件时,您不会同时打开另一个空白文档。
在 Word 2010 和 2013 中,AutoExec 在 AutoOpen 之前触发。 因此无法应用该解决方案。 但您可以要求 Word 关闭 AutoOpen 宏中的空白文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.