Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Ocorre quando um usuário executa a verificação de endereço escolhendo Validar na caixa de diálogo Destinatários da Mala Direta .
Sintaxe
mais simples. MailMergeDataSourceValidate (doc, tratado)
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 um software de verificação de endereço instalado no computador, use o evento MailMergeDataSourceValidate para criar rotinas de filtragem simples, como fazer loop nos registros para marcar os códigos postais e remover qualquer um que não seja dos EUA. Os usuários de fora dos EUA podem filtrar todos os códigos postais dos EUA modificando a amostra de código a seguir e usando comandos do Microsoft Visual Basic para pesquisar texto ou caracteres especiais.
Para acessar os eventos de objeto Application , declare uma variável de objeto Application na seção General Declarations 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 Application 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 são U.S. ZIP Codes. Você pode modificar este exemplo para pesquisar CEPs que tenham um código de localização de quatro dígitos anexado ao CEP e, em seguida, excluir todos os registros que não contenham o código de localização.
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.