Board logo

標題: [發問] word 巨集 被連續觸發 [打印本頁]

作者: eigen    時間: 2018-5-30 15:56     標題: 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 ,執行列印就會發生上述的問題

我只想針對我要列印的檔案
[attach]28781[/attach][attach]28781[/attach]
作者: eigen    時間: 2018-5-31 17:08

解:

建個新的 module


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

移過去,不要放在 ThisDocument
作者: linyancheng    時間: 2018-6-9 22:11

本帖最後由 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,
任何新開的檔案都會受影響,不只以它為範本的檔案。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)