
Originally Posted by
Mrbrtsde
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