Application.MailMergeBeforeRecordMerge event (Publisher)

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

Syntax

expression.MailMergeBeforeRecordMerge (Doc, Cancel)

expression A variable that represents an Application object.

Parameters

Name Required/Optional Data type Description
Doc Required Document The mail merge main document.
Cancel Required Boolean Stops the mail merge process, for the current record only, before it starts.

Remarks

To access the Application object events, declare an Application object variable in the General Declarations section of a code module, and then set the variable equal to the Application object for which you want to access events.

For information about using events with the Microsoft Publisher Application object, see Using events with the Application object.

Example

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.

Private Sub MailMergeApp_MailMergeBeforeRecordMerge(ByVal _ 
 Doc As Document, Cancel As Boolean) 
 
 Dim intZipLength As Integer 
 
 intZipLength = Len(ActiveDocument.MailMerge _ 
 .DataSource.DataFields(6).Value) 
 
 '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.

Private WithEvents MailMergeApp As Application 
 
Sub InitializeMailMergeApp() 
 Set MailMergeApp = Publisher.Application 
End Sub

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.