This documentation is archived and is not being maintained.

Application.MailMergeBeforeMerge Event

Office 2007
Occurs when a merge is executed before any records in a mail merge have merged.


expression.MailMergeBeforeMerge(Doc, StartRecord, EndRecord, Cancel)

expression   A variable that represents an Application object.


NameRequired/OptionalData TypeDescription
DocRequiredDocumentThe mail merge main document.
StartRecordRequiredLongThe first record in the data source to include in the mail merge.
EndRecordRequiredLongThe last record in the data source to include in the mail merge.
CancelRequiredBooleanStops the mail merge process 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 displays a message before the mail merge process begins, asking the user if they want to continue. If the user clicks No, the merge process is canceled.

Visual Basic for Applications
Private Sub MailMergeApp_MailMergeBeforeMerge(ByVal Doc As Document, _
    ByVal StartRecord As Long, ByVal EndRecord As Long, _
    Cancel As Boolean)

    Dim intVBAnswer As Integer

    Set Doc = ActiveDocument

    'Request whether the user wants to continue with the merge
    intVBAnswer = MsgBox("Mail Merge for " & Doc.Name & _
        " is now starting.  Do you want to continue?", _
        vbYesNo, "Event!")

    'If user's response to question is No, then cancel merge process
    'and deliver a message to the user stating the merge is canceled
    If intVBAnswer = vbNo Then
        Cancel = True
        MsgBox "You have canceled mail merge for " & _
            Doc.Name & "."
    End If

End Sub