2017-03-26 1 views
0

Je souhaite créer App_DocumentBeforeClose.App_DocumentBeforeClose vba word

J'utilisé avec ce code:

En ThisDocument:

Private Sub Document_Open() 
start 
End Sub 

Dans Modul

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

En classe Mudel:

Public WithEvents App As Word.Application 

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

Quand je ferme document, il est pas montre moi le MsgBox , Pourquoi?

Merci,

Tal

+0

Vous devez instancier la classe: https://msdn.microsoft.com/fr-fr/library/office/ff821218.aspx#Initialize – Absinthe

Répondre

0

votre sous fonctionne correctement mais X est instancié comme variable scope procédure de sorte qu'une fois start() extrémités, X est hors de portée et ne sont pas disponibles à tout événement DocumentBeforeClose() ultérieure déclenchement

vous devez déclarer X comme une variable Public

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, avez-vous passé au travers? – user3598756