Quando você usa a Mala Direta do Word para gerar cartas, envelopes ou etiquetas, o campo Bloco de Endereço insere um nome e endereço formatados da sua fonte de dados. Mas às vezes você precisa que o Bloco de Endereço mostre informações diferentes dependendo de um valor nos dados, como exibir o nome da empresa para contatos comerciais e o nome pessoal para contatos individuais. O Word não permite colocar um campo IF diretamente dentro de um campo Bloco de Endereço. Este artigo explica como contornar essa limitação inserindo condicionais IF/ELSE ao redor ou no lugar do campo Bloco de Endereço, usando o sistema de códigos de campo do Word. Você aprenderá a sintaxe exata e as etapas para criar conteúdo de endereço condicional que muda com base em qualquer campo da sua fonte de dados.
Principais Pontos: Usando Condicionais IF/ELSE com Bloco de Endereço na Mala Direta
- Alt+F9 para alternar códigos de campo: Revela o código de campo subjacente do Bloco de Endereço para que você possa editá-lo ou substituí-lo por um campo IF condicional.
- Ctrl+F9 para inserir um novo campo: Cria um par de chaves onde você pode digitar manualmente o código do campo IF.
- Nomes dos campos de mesclagem da sua fonte de dados: Devem corresponder exatamente aos cabeçalhos das colunas para que a condição IF seja avaliada corretamente.
- Códigos de campo aninhados para condições complexas: Você pode combinar vários campos IF ou usar o campo Bloco de Endereço como uma das saídas verdadeiro/falso.
Como o Campo Bloco de Endereço Funciona e Por Que o IF/ELSE Não Pode Ser Colocado Dentro Dele
O campo Bloco de Endereço na Mala Direta do Word é um único código de campo que extrai dados de campos mapeados na sua fonte de dados. Quando você insere um Bloco de Endereço, o Word cria um código de campo semelhante a este:
{ ADDRESSBLOCK \c "pt-BR" }
Este código de campo instrui o Word a gerar um bloco formatado usando o nome do destinatário, endereço, cidade, estado e CEP. Você não pode inserir um campo IF dentro das chaves do próprio campo ADDRESSBLOCK. Se tentar, o Word ignora a sintaxe IF ou produz um erro.
A solução alternativa é substituir completamente o Bloco de Endereço por um campo IF que contenha os componentes de endereço necessários. Alternativamente, você pode manter o Bloco de Endereço e envolvê-lo em um campo IF para que ele apareça apenas quando uma condição for verdadeira. A sintaxe do campo IF no Word segue esta estrutura:
{ IF [nome do campo] [operador] [valor] [texto verdadeiro] [texto falso] }
O nome do campo deve corresponder a um cabeçalho de coluna na sua fonte de dados. O operador pode ser =, <>, >, <, >= ou <=. Os textos verdadeiro e falso podem incluir texto simples, outros campos de mesclagem ou até mesmo um campo ADDRESSBLOCK aninhado.
Etapas para Inserir uma Condicional IF/ELSE que Substitui o Bloco de Endereço
Estas etapas pressupõem que você já conectou seu documento principal a uma fonte de dados e inseriu um Bloco de Endereço. Você substituirá esse Bloco de Endereço por um campo IF condicional que mostra conteúdo de endereço diferente com base em um valor de campo.
- Revele o código de campo do Bloco de Endereço existente
Pressione Alt+F9 para alternar a exibição dos códigos de campo. O código de campo do Bloco de Endereço aparece entre chaves. Selecione todo o campo, incluindo as chaves, e pressione Delete para removê-lo. Pressione Alt+F9 novamente para retornar à visualização normal. - Insira um novo campo IF
Pressione Ctrl+F9 para inserir um par de chaves de campo vazias. Seu cursor estará dentro das chaves. Digite o seguinte código de campo, substituindo os placeholders pelos nomes e valores reais dos seus campos de dados:IF [NomeDoCampo] = "[Valor]" "[TextoVerdadeiro]" "[TextoFalso]"
Por exemplo, se sua fonte de dados tem uma coluna chamada “TipoContato” e você quer exibir “Nome da Empresa” quando TipoContato for igual a “Comercial” e “Nome Sobrenome” quando TipoContato for qualquer outro valor, digite:IF TipoContato = "Comercial" "{ MERGEFIELD Empresa }" "{ MERGEFIELD Nome } { MERGEFIELD Sobrenome }" - Adicione os campos de endereço restantes
Após o campo IF, pressione Enter e insira os campos de mesclagem de endereço restantes, como Rua, Cidade, Estado e CEP. Você pode inserir cada campo de mesclagem pressionando Ctrl+F9 e digitandoMERGEFIELD [NomeDoCampo]ou usando o botão Inserir Campo de Mesclagem na guia Correspondências. O resultado final deve ser semelhante a este:{ IF TipoContato = "Comercial" "{ MERGEFIELD Empresa }" "{ MERGEFIELD Nome } { MERGEFIELD Sobrenome }" }{ MERGEFIELD Rua }{ MERGEFIELD Cidade }, { MERGEFIELD Estado } { MERGEFIELD CEP } - Teste a mesclagem condicional
Na guia Correspondências, clique em Visualizar Resultados. Use os botões de seta para percorrer os registros. Verifique se a condição IF mostra o nome correto para cada tipo de contato. Se a condição não for avaliada conforme o esperado, verifique se o nome do campo na instrução IF corresponde exatamente ao cabeçalho da coluna, incluindo maiúsculas/minúsculas e espaços.
Etapas para Envolver um Bloco de Endereço Existente Dentro de um Campo IF
Se você deseja manter o formato do Bloco de Endereço, mas mostrá-lo apenas quando uma condição for verdadeira, envolva o Bloco de Endereço dentro de um campo IF. Isso é útil quando você quer suprimir o endereço para certos registros, como quando um campo “NaoEnviar” está definido como Sim.
- Insira o Bloco de Endereço normalmente
Na guia Correspondências, clique em Bloco de Endereço e configure os campos conforme necessário. Clique em OK para inseri-lo. - Recorte o Bloco de Endereço para a área de transferência
Selecione o campo Bloco de Endereço (incluindo os colchetes se os códigos de campo estiverem visíveis) e pressione Ctrl+X. - Insira um campo IF e cole o Bloco de Endereço dentro dele
Pressione Ctrl+F9 para criar chaves de campo vazias. Digite a condição IF, mas deixe o texto verdadeiro vazio. Pressione Ctrl+V para colar o Bloco de Endereço na posição do texto falso. Por exemplo, para ocultar o endereço quando NaoEnviar for igual a Sim, digite:IF NaoEnviar = "Sim" "" "{ ADDRESSBLOCK \c "pt-BR" }"
Pressione F9 para atualizar o campo e, em seguida, pressione Alt+F9 para retornar à visualização normal. - Visualize os resultados
Clique em Visualizar Resultados na guia Correspondências. Registros com NaoEnviar definido como Sim mostram uma linha em branco onde o endereço apareceria. Registros com qualquer outro valor mostram o Bloco de Endereço completo.
Erros Comuns e Limitações ao Usar IF/ELSE com Bloco de Endereço
O campo IF não mostra nada ou mostra o texto errado
A causa mais comum é uma incompatibilidade entre o nome do campo na instrução IF e o cabeçalho da coluna na fonte de dados. Os nomes dos campos diferenciam maiúsculas de minúsculas e devem incluir espaços exatamente como aparecem. Abra sua fonte de dados no Excel e verifique o texto exato do cabeçalho da coluna. Além disso, certifique-se de que o valor na condição IF esteja entre aspas duplas retas, não curvas.
O Word exibe o código de campo em vez do endereço
Isso acontece quando os códigos de campo estão ativados. Pressione Alt+F9 para ocultar os códigos de campo e mostrar o resultado mesclado. Se o problema persistir, selecione todo o documento e pressione F9 para atualizar todos os campos.
O campo IF funciona apenas para comparações de texto, não para números ou datas
Os campos IF do Word comparam valores de texto. Se o seu campo contiver números ou datas, o Word os converte em texto antes da comparação. Para campos numéricos, use o operador = com o número como texto, como IF Idade = "25". Para datas, use a data como texto no mesmo formato da sua fonte de dados, por exemplo IF DataInicio = "01/01/2025". O Word não oferece suporte a aritmética de datas dentro de campos IF.
Campos IF aninhados tornam-se ilegíveis
Você pode aninhar campos IF colocando um campo IF dentro do texto verdadeiro ou falso de outro. No entanto, cada campo aninhado requer seu próprio conjunto de chaves Ctrl+F9. Para lógica complexa, considere usar um campo calculado em sua fonte de dados (como uma fórmula do Excel) em vez de aninhar vários campos IF no Word.
Condicional IF/ELSE vs Bloco de Endereço: Principais Diferenças
| Item | Campo Condicional IF/ELSE | Campo Bloco de Endereço |
|---|---|---|
| Definição | Um código de campo que exibe uma de duas strings de texto com base em uma condição | Um campo pré-formatado que combina campos de nome, empresa e endereço da sua fonte de dados |
| Personalização | Você controla cada caractere da saída | O Word controla a formatação com base no seu local e mapeamento de campos |
| Lógica condicional | Lógica IF/ELSE integrada | Sem lógica condicional; sempre exibe os campos mapeados |
| Complexidade do código de campo | Requer digitação manual dos nomes e valores dos campos | Inserido automaticamente com uma caixa de diálogo |
| Melhor caso de uso | Quando você precisa de conteúdo de endereço diferente com base em um campo de dados | Quando todos os registros usam o mesmo formato de endereço com os mesmos campos |
Use uma condicional IF/ELSE quando seus dados contiverem um campo que determina quais componentes de endereço exibir. Use o Bloco de Endereço quando cada registro tiver o mesmo conjunto de campos de endereço e você quiser que o Word lide automaticamente com espaçamento e pontuação.
Agora você pode criar documentos de mala direta que mostram conteúdo de endereço diferente com base em qualquer campo da sua fonte de dados. Comece identificando o campo que atuará como condição. Escreva o código do campo IF com o nome e valor exatos do campo. Teste com Visualizar Resultados para confirmar a saída. Para cenários avançados, tente aninhar um segundo campo IF dentro do texto verdadeiro ou falso para lidar com uma terceira condição, ou use o Bloco de Endereço como texto falso para recorrer a um endereço formatado padrão.