2017-03-26 2 views
0

App_DocumentBeforeClose를 만들고 싶습니다. 내가 문서를 닫을 때 아니에요App_DocumentBeforeClose vba 워드

Public WithEvents App As Word.Application 

Private Sub App_DocumentBeforeClose(ByVal Doc As Document, Cancel As 
Boolean) 
MsgBox "App_DocumentBeforeClose" 
End Sub 

:의 ThisDocument에서

:

Private Sub Document_Open() 
start 
End Sub 

MODUL

Sub start() 
Dim X As New EventClassModule 
Set X.App = Word.Application 
End Sub 

에서 클래스 Mudel에서

는이 코드 사용 나에게 MsgBox 보여줘. , 왜? 절차 변수를 범위로 start()이 종료되면, X이 범위를 벗어나 및 후속 DocumentBeforeClose() 이벤트에 사용할 수없는 있도록

감사합니다,

탈은

+0

클래스를 인스턴스화해야합니다. https://msdn.microsoft.com/en-us/library/office/ff821218.aspx#Initialize – Absinthe

답변

0
당신의 서브가 제대로 실행

하지만 X는 인스턴스화 트리거링

XPublic 변수로 지정해야합니다.

Public X As New EventClassModule '<--| this way 'X' is "seen" throughout the entire life of the document 


Sub start() 
' Dim X As New EventClassModule '<--| this way 'X' would be "seen" only at the moment 'start()' is running 
    Set X.App = Word.Application 
End Sub 
+0

@tal_sshh, 완료 했습니까? – user3598756