This documentation is archived and is not being maintained.

Application.MailMergeBeforeRecordMerge Event

Office 2007
Occurs as a merge is executed for the individual records in a merge.


expression.MailMergeBeforeRecordMerge(Doc, Cancel)

expression   A variable that represents an Application object.


NameRequired/OptionalData TypeDescription
DocRequiredDocumentThe mail merge main document.
CancelRequiredBooleanStops the mail merge process, for the current record only, before it starts.


To access the Application object events, declare an Application object variable in the General Declarations section of a code module. Then set the variable equal to the Application object for which you want to access events. For information about using events with the Microsoft Office Publisher Application object, see Using Events with the Application Object.


This example verifies that the length of the ZIP Code (which in this example is field number six) is less than five and if it is, cancels the merge for that record only.

Visual Basic for Applications
Private Sub MailMergeApp_MailMergeBeforeRecordMerge(ByVal _
    Doc As Document, Cancel As Boolean)

        Dim intZipLength As Integer

        intZipLength = Len(ActiveDocument.MailMerge _

        'Cancel merge of this record only if
        'the ZIP Code has fewer than five digits
        If intZipLength < 5 Then
            Cancel = True
        End If

End Sub

For this event to occur, you must place the following line of code in the global declarations section of your module and run the following initialization routine.

Visual Basic for Applications
Private WithEvents MailMergeApp As Application

Sub InitializeMailMergeApp()
    Set MailMergeApp = Publisher.Application
End Sub