您正在查看: 标签 单元格 下的文章

MailMergeDataSourceLoad 事件

MailMergeDataSourceLoad 事件

加载用于邮件合并的数据源时,该事件发生。

Private Sub object_MailMergeDataSourceLoad(ByVal Doc As Document)

object 在类模块事件中声明的 Application 类型对象。有关使用 Application 对象事件的详细信息,请参阅使用 Application 对象事件。

Doc 邮件合并主文档。

示例

该示例在开始加载数据源时,显示一条包含数据源文件名的消息。该示例假定在一般声明中声明了一个名为 MailMergeApp 的应用程序变量,并将 Word Application 对象赋给该变量。

Private Sub MailMergeApp_MailMergeDataSourceLoad(ByVal Doc As Document)
    Dim strDSName As String
    Dim intDSLength As Integer
    Dim intDSStart As Integer
'Extract from the Name property only the filename
intDSLength = Len(Doc.MailMerge.DataSource.Name)
intDSStart = InStrRev(Doc.MailMerge.DataSource.Name, "\")
intDSStart = intDSLength - intDSStart
strDSName = Right(Doc.MailMerge.DataSource.Name, intDSStart)

'Deliver a message to user when data source is loading
MsgBox "Your data source, " & strDSName & ", is now loading."

End Sub

MailMergeBeforeRecordMerge 事件

MailMergeBeforeRecordMerge 事件

在合并中执行单独记录的合并时,该事件发生。

Private Sub object_MailMergeBeforeRecordMerge(ByVal Doc As Document, Cancel As Boolean)

object 在类模块事件中声明的 Application 类型对象。有关使用 Application 对象事件的详细信息,请参阅使用 Application 对象事件。

Doc 邮件合并主文档。

Cancel 如果该参数值为 True,则仅在当前记录的邮件合并过程开始前停止该过程。

示例

该示例验证邮政编码(该示例中是第六号字段)的长度是否小于五位数字,如果是,则仅取消该记录的合并。该示例假定在一般声明中声明了一个名为 MailMergeApp 的应用程序变量,并将 Word Application 对象赋给该变量。

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 is less than five digits
    If intZipLength < 5 Then
        Cancel = True
    End If

End Sub

MailMergeBeforeMerge 事件

MailMergeBeforeMerge 事件

执行合并后,在合并任何记录之前,该事件发生。

Private Sub object_MailMergeBeforeMerge(ByVal Doc As Document, ByVal StartRecord As Long, ByVal EndRecord As Long, Cancel As Boolean)

object 在类模块事件中声明的 Application 类型对象。有关使用 Application 对象事件的详细信息,请参阅使用 Application 对象事件。

Doc 邮件合并主文档。

StartRecord 要包含在邮件合并中的数据源中的第一条记录。

EndRecord 要包含在邮件合并中的数据源中的最后一条记录。

Cancel 若该参数值为 True,则在邮件合并开始前停止该过程。

示例

该示例在邮件合并过程开始前显示一条消息,询问用户是否继续。如果用户单击“否”,则取消邮件合并过程。该示例假定在一般声明中声明了一个名为 MailMergeApp 的应用程序变量,并将 Word Application 对象赋给该变量。

Private Sub MailMergeApp_MailMergeBeforeMerge(ByVal Doc As Document, _
    ByVal StartRecord As Long, ByVal EndRecord As Long, _
    Cancel As Boolean)
Dim intVBAnswer As Integer

'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, "MailMergeBeforeMerge Event")

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

End Sub

MailMergeAfterRecordMerge 事件

MailMergeAfterRecordMerge 事件

邮件合并中,在数据源中的每一条记录合并成功后,该事件发生。

Private Sub object_MailMergeAfterRecordMerge(ByVal Doc As Document)

object 在类模块事件中声明的 Application 类型对象。有关使用 Application 对象事件的详细信息,请参阅使用 Application 对象事件。

Doc 邮件合并主文档。

示例

该示例显示一条消息,以及刚完成合并的记录中第一个和第二个域的值。该示例假定在一般声明中声明了一个名为 MailMergeApp 的应用程序变量,并将 Word Application 对象赋给该变量。

Private Sub MailMergeApp_MailMergeAfterRecordMerge(ByVal Doc As Document)
With Doc.MailMerge.DataSource
    MsgBox .DataFields(1).Value & " " & _
        .DataFields(2).Value & " is finished merging."
End With

End Sub

MailMergeAfterMerge 事件

MailMergeAfterMerge 事件

在邮件合并中的所有记录合并成功后,该事件发生。

Private Sub object_MailMergeAfterMerge(ByVal Doc As Document, ByVal DocResult As Document)

object 在类模块事件中声明的 Application 类型对象。有关使用 Application 对象事件的详细信息,请参阅使用 Application 对象事件。

Doc 邮件合并主文档。

DocResult 邮件合并生成的文档。

示例

该示例显示一条消息,说明指定文档中的所有记录已完成合并。如果将文档合并到第二篇文档,则消息中将包含新文档的名称。该示例假定在一般声明中声明了一个名为 MailMergeApp 的应用程序变量,并将 Word Application 对象赋给该变量。

Private Sub MailMergeApp_MailMergeAfterMerge(ByVal Doc As Document, _
        ByVal DocResult As Document)
    If DocResult Is Nothing Then
        MsgBox "Your mail merge on " & _
            Doc.Name & " is now finished."
Else
    MsgBox "Your mail merge on " & _
        Doc.Name & " is now finished and " & _
        DocResult.Name & " has been created."
End If

End Sub