簡體   English   中英

打開 Word 時不觸發 Word VBA AutoNew 宏

[英]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 宏中的空白文件。

您是否嘗試過在 Normal.dot 文件中為 Document_New() 和 Document_Open() 事件添加代碼? 我只是用我的試了一下,但是我打開了測試文檔,我讓 Document_Open() 觸發了。 Document_New() 也有效。

我的測試設置的屏幕截圖。 相關的 msgbox 包括文檔的名稱。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM