Word VBA - DocumentBeforeSave event?

后端 未结 3 384
北恋
北恋 2020-12-22 03:15

I am using the following VBA code to make a message box appear while saving the Word document,

Public WithEvents appWord as Word.Application 

Private Sub ap         


        
相关标签:
3条回答
  • Put it in the ThisDocument section of your VBA Project in Word, not in a Class as it won't work there.

    Here is an example: https://msdn.microsoft.com/en-us/library/office/ff838299.aspx

    0 讨论(0)
  • 2020-12-22 04:02

    With Word 2016 I found that a change was necessary

    Set X.App = Word.Application
    

    should be

    Set X.appWord = Word.Application
    
    0 讨论(0)
  • 2020-12-22 04:06

    I made it to work. Thanks to AnalystCave.com for the help. This is what I did:

    I create a new class named EventClassModule and copied the following code,

    Public WithEvents App As Word.Application
    
    Private Sub App_DocumentBeforeSave _
     (ByVal Doc As Document, _
     SaveAsUI As Boolean, _
     Cancel As Boolean)
    
     Dim intResponse As Integer
    
     intResponse = MsgBox("Do you really want to " _
     & "save the document?", _
     vbYesNo)
    
     If intResponse = vbNo Then Cancel = True
    End Sub
    

    Then created a module named mdlEventConnect and copied the following code,

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

    After this on the ThisDocument copied the following code,

    Private Sub Document_New()
        Register_Event_Handler
    End Sub
    
    Private Sub Document_Open()
        Register_Event_Handler
    End Sub
    

    Saved the document and re-opened it. Now when I try to save the document it executed the DocumentBeforeSave event perfectly.

    0 讨论(0)
提交回复
热议问题