返回列表 上一主題 發帖

[發問] word 巨集 被連續觸發

[發問] word 巨集 被連續觸發

word 巨集 被連續觸發

我參考微軟  http://msdn.microsoft.com/en-us/library/office/aa211873(v=office.11).aspx

和

http://msdn.microsoft.com/en-us/library/office/aa211915(v=office.11).aspx

https://stackoverflow.com/questions/8693798/documentbeforeclose-syntax

做出了 word 2003 beforeprint 的巨集

當我列印時,會先觸發這個 BeforePrint 這個巨集


目前發生一個問題,我發現當我開啟 A、B 兩個同類型doc,都有 BeforePrint 巨集

當我對 A.doc執行 print ,BeforePrint 巨集就會被觸發 2次

如果我開啟三個 A、B、C 三個,都有 BeforePrint 巨集的 DOC

當我對 A.doc執行 print ,BeforePrint 巨集就會被觸發 3次。

不勝奇擾,有人看的懂這巨集究竟有什麼問題?

附件有價單.DOT ,執行兩次就會新增兩個DOC ,執行列印就會發生上述的問題

我只想針對我要列印的檔案
價單.zip (10.15 KB)
公開經驗,創造智慧(我又不靠這過活)

解:

建個新的 module

將
Dim X As New EventClassModule
Sub Register_Event_Handler()
Set X.appWord = Word.Application
End Sub

移過去,不要放在 ThisDocument
公開經驗,創造智慧(我又不靠這過活)

TOP

本帖最後由 linyancheng 於 2018-6-9 23:06 編輯

回復 2# eigen


Document_Open在dot檔沒有作用,保留Document_New即可。

在ThisDocument模組為Private Sub模組,
兩個檔案下,Dim X各自存在,
故會產生兩個物件類別模組的物件「影子」,
三個檔案就會產生三個,
也就同時引起幾個觸發事件。

一般模組下為Public Sub模組,
不管開幾個檔案,Dim X只有一個,
只Set一次,
也只產生一個物件「影子」,
觸發事件也只有一次。

「影子」的「實體」是Word.Application,
任何新開的檔案都會受影響,不只以它為範本的檔案。

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題