Evento Application.MailMergeDataSourceValidate (Publisher)
Ocorre quando um usuário executa a verificação de endereço escolhendo Validar na caixa de diálogo Destinatários de Mesclagem de Email .
Sintaxe
expressão. MailMergeDataSourceValidate (Doc, Handled)
expressão Uma variável que representa um Aplicativo objeto.
Parâmetros
Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
---|---|---|---|
Doc | Obrigatório | Document | O documento principal de mala direta. |
Handled | Obrigatório | Boolean | True executa o código de validação acompanha contra a fonte de dados de mala direta. False cancela a validação de fonte de dados. |
Comentários
Se você não tiver o software de verificação de endereço instalado em seu computador, use o evento MailMergeDataSourceValidate para criar rotinas de filtragem simples, como fazer loops por meio de registros para verificar os códigos postais e remover qualquer um que não seja dos EUA. Usuários que não são americanos podem filtrar todos os códigos postais dos EUA modificando o exemplo de código a seguir e usando comandos do Microsoft Visual Basic para pesquisar texto ou caracteres especiais.
Para acessar os eventos do objeto Application , declare uma variável de objeto Application na seção Declarações Gerais de um módulo de código e defina a variável igual ao objeto Application para o qual você deseja acessar eventos.
Para obter informações sobre como usar eventos com o objeto Aplicativo do Microsoft Publisher, consulte Usando eventos com o objeto Application.
Exemplo
Este exemplo valida códigos de CEP na fonte de dados vinculada de cinco dígitos. Se o tamanho do CEP tiver menos que cinco dígitos, o registro será excluído do processo de mala direta. Este exemplo pressupõe que os códigos postais sejam CEP dos EUA. Você pode modificar este exemplo para pesquisar CEP que tenham um código localizador de quatro dígitos anexado ao CEP e excluir todos os registros que não contêm o código do localizador.
Private Sub MailMergeApp_MailMergeDataSourceValidate( _
ByVal Doc As Document, _
Handled As Boolean)
Dim intCount As Integer
Handled = True
On Error Resume Next
With ActiveDocument.MailMerge.DataSource
'Set the active record equal to the first included record in the
'data source
.ActiveRecord = 1
Do
intCount = intCount + 1
'Set the condition that field six must be greater than or
'equal to five
If Len(.DataFields.Item(6).Value) < 5 Then
'Exclude the record if field six is shorter than five digits
.Included = False
'Mark the record as containing an invalid address field
.InvalidAddress = True
'Specify the comment attached to the record explaining
'why the record was excluded from the mail merge
.InvalidComments = "The ZIP Code for this record has " _
& "fewer than five digits. It will be removed " _
& "from the mail merge process."
End If
'Move the record to the next record in the data source
.ActiveRecord = .ActiveRecord + 1
'End the loop when the counter variable
'equals the number of records in the data source
Loop Until intCount = .RecordCount
End With
End Sub
Para que este evento ocorra, você precisa colocar a seguinte linha de código na seção Declaração Geral do módulo e executar a seguinte rotina de inicialização.
Private WithEvents MailMergeApp As Application
Sub InitializeMailMergeApp()
Set MailMergeApp = Publisher.Application
End Sub
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.