Results 1 to 5 of 5

Thread: DocumentBeforeClose Help

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #3
    Microsoft Word MVP 2003-2009 VBAX Guru gmaxey's Avatar
    Joined
    Sep 2005
    Posts
    3,411
    Location
    Quote Originally Posted by Mrbrtsde View Post
    Hi all,

    I am trying to validate all form fields in a Word doc prior to close and message the user that these fields must be completed before the doc closes. Once they have clicked 'OK', I want the doc to stay open to allow them to update mandatory fields. This what I have so far (which doesn't work):

    Private Sub DocumentBeforeClose(ByVal Doc As Document, Cancel As Boolean)
     Dim intResponse As Integer
     Dim FFld As FormField
     Set Doc = ActiveDocument
     For Each FFld In Doc.FormFields
        If Trim(FFld.Result) = "" Then
        intResponse = MsgBox("Please enter a value in each field", vbOKOnly)
     'Cancel = True will prevent the document from closing once the sub is complete
     'Cancel = False will close the document after sub is complete.
     Cancel = True
     End If
     Next
    End Sub


    Thanks for your help!

    That is an Application event so you first have to create the class.

    In a new class module (named clsNormal) paste:


    Option Explicit
    Private WithEvents mWordApp As Word.Application
    Private Sub Class_Initialize()
      Set mWordApp = Word.Application
    End Sub
    
    Private Sub mWordApp_DocumentBeforeClose(ByVal Doc As Document, Cancel As Boolean)
    
    End Sub
    In a new standard module paste:

    Option Explicit
    Private oCls As clsNormal
    Sub AutoExec()
      Set oCls = New clsNormal
    lbl_Exit:
      Exit Sub
    End Sub
    Last edited by Aussiebear; 12-15-2021 at 04:48 AM. Reason: added code tags to submitted code
    Greg

    Visit my website: http://gregmaxey.com

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •