【问题标题】:Word VBA AutoNew macro not firing when opening Word打开 Word 时不会触发 Word VBA AutoNew 宏
【发布时间】:2021-07-06 03:32:16
【问题描述】:

使用 Word 2013。

我发现this previous question 是类似的,但没有可接受的答案,而且我没有尝试构建加载项,所以我希望我不需要复杂的东西。

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

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

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

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

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

想法?

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

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

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

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

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

    Sub AutoExec()
    
        Documents.Add
    
    End Sub
    

    【讨论】:

    • 感谢您的见解。你的解决方案对我有用。顺便说一句,我的示例是在创建新文档时代表我可能想要采取的任何操作,因此从这个意义上说它是“可行的”。从您的笔记中,我看到“Doc​​ument1”只是一个占位符或虚拟文档,直到用户触摸它。即使在用户“采取行动”将其转换为真实文档之后,AutoNew 也不会为 Document1 触发,这仍然让我感到困扰。
    • @vknowles 你必须与微软讨论这个问题,但我怀疑那个团队中没有人知道行为背后的原始逻辑是什么,至少可以追溯到 Office 2007,如果不是'97...
    【解决方案2】:

    在 Word 2016 中,64 位 AutoOpen 在 AutoExec 之前触发。 因此,如果您打开一个文件,当 AutoExec 运行时,您只有在没有打开文件的情况下才能打开一个新文件。 因此,当您打开一个文件时,您没有同时打开另一个空白文档。

    在 Word 2010 和 2013 中,AutoExec 在 AutoOpen 之前触发。 因此无法应用该解决方案。 但您可以要求 Word 关闭 AutoOpen 宏中的空白文件。

    【讨论】:

      【解决方案3】:

      您是否尝试在 Normal.dot 文件中仅添加 Document_New() 和 Document_Open() 事件的代码?我只是用我的尝试过,但是我打开了测试文档,我让 Document_Open() 触发。 Document_New() 也能正常工作。

      我的测试设置的屏幕截图。相关的 msgbox 包含文档的名称。

      【讨论】:

      • Word 启动时不会触发。 OP 明确表示只有在没有指定文件的情况下启动 word 时才会出现问题。
      • 对不起,我应该提到我在 Office 365 中使用了 Word。当您从任务栏打开 Word 时,默认情况下它不会打开新文档。您要么必须选择一个新文档,要么打开一个现有文档。在这种情况下,我发布的内容很好。不知道谁投了反对票,但不认为这是有道理的。由于没有获得足够的声誉,我还不能对问题发表评论。我只能评论我自己的答案。
      • OP 指定的是 Word 2013,而不是 Office 365。
      • 很公平,很抱歉试图提供帮助!
      猜你喜欢
      • 2022-01-06
      • 1970-01-01
      • 2015-04-05
      • 2021-07-15
      • 2010-10-16
      • 2020-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多