Ao executar uma mala direta no Word, muitas vezes você precisa exibir textos diferentes, ocultar campos vazios ou pular certos registros com base em condições dos dados. Editar manualmente cada documento mesclado anula o propósito da automação. Felizmente, o Word oferece códigos de campo condicionais integrados que lidam com lógica IF, THEN, ELSE sem escrever nenhum código VBA. Este artigo explica como usar o campo IF, os campos MERGEFIELD e SKIPIF, e códigos de campo aninhados para criar modelos inteligentes que se adaptam automaticamente à sua fonte de dados.
Principais Conclusões: Campos Condicionais na Mala Direta Sem VBA
- Campo IF com comparação MERGEFIELD: Mostra ou oculta blocos de texto com base no valor de um campo de dados, como saudar clientes de forma diferente por gênero.
- Campo SKIPIF para excluir registros: Impede que determinadas linhas de dados sejam mescladas quando uma condição é verdadeira, útil para filtrar contas inativas.
- Campos aninhados dentro de IF: Combina múltiplas condições ou insere MERGEFIELD dentro de IF para exibir dados dinâmicos apenas quando uma condição é atendida.
Como os Campos Condicionais do Word Funcionam na Mala Direta
O Word usa códigos de campo — instruções especiais entre chaves — para executar lógica durante uma mala direta. O campo condicional mais comum é o campo IF. Sua sintaxe é:
{ IF expressão1 operador expressão2 "texto-verdadeiro" "texto-falso" }
A expressão pode ser um MERGEFIELD, um marcador ou um valor literal. Os operadores incluem igual (=), diferente (<>), maior que (>), menor que (<), maior ou igual (>=) e menor ou igual (<=). Os textos verdadeiro e falso são a saída quando a condição é verdadeira ou falsa. Você também pode aninhar outros campos dentro desses argumentos de texto.
Para inserir um código de campo, pressione Ctrl + F9. Isso cria um par de chaves. Não digite as chaves manualmente — o Word não as reconhecerá. Dentro das chaves, digite o código de campo exatamente. Após inserir o código, pressione Alt + F9 para alternar entre a visualização do código de campo e o texto resultante. Você também pode clicar com o botão direito em um campo e escolher Alternar Códigos de Campo.
Pré-requisitos
Antes de usar campos condicionais, seu documento principal de mala direta já deve estar conectado a uma fonte de dados (planilha Excel, contatos do Outlook, banco de dados Access, etc.). Você também deve ter inserido pelo menos um MERGEFIELD para confirmar que a mesclagem funciona. Os campos condicionais farão referência aos mesmos nomes de campos de dados.
Usando Campos IF para Exibir Conteúdo Condicional
O campo IF é a ferramenta mais flexível para mala direta condicional. Você pode usá-lo para exibir saudações diferentes, ocultar seções opcionais ou alterar a formatação com base em um valor de dados.
Exemplo 1: Saudação Específica por Gênero
- Inserir o campo IF
Posicione o cursor onde deseja a saudação. Pressione Ctrl + F9 para inserir um par de código de campo. - Digitar a condição IF
Dentro das chaves, digite:IF MERGEFIELD Gender = "Masculino" "Prezado Sr. " "Prezada Sra. ". Pressione F9 para atualizar o campo. - Adicionar o campo sobrenome
Após a chave de fechamento do campo IF, pressione Ctrl + F9 e insiraMERGEFIELD LastName. O resultado exibirá “Prezado Sr. Silva” ou “Prezada Sra. Santos” dependendo dos dados.
Exemplo 2: Ocultar um Parágrafo Quando um Campo Estiver Vazio
- Inserir o campo IF ao redor do parágrafo
Selecione o parágrafo inteiro que deseja exibir condicionalmente. Pressione Ctrl + F9 para envolvê-lo com um par de código de campo. Não exclua o texto do parágrafo. - Digitar a condição
Edite o código de campo para:{ IF MERGEFIELD SpecialOffer <> "" "Sua oferta especial: MERGEFIELD SpecialOffer" "" }. Isso mostra o parágrafo apenas quando o campo SpecialOffer não estiver em branco. - Atualizar e testar
Pressione F9 para atualizar. Execute uma pré-visualização em Resultados da Pré-visualização da Mala Direta para ver o parágrafo aparecer apenas para registros que possuem um valor.
Usando SKIPIF para Excluir Registros da Mesclagem
O campo SKIPIF impede que um registro seja mesclado quando uma condição é verdadeira. O Word passa para o próximo registro de dados sem imprimir nada para o registro ignorado. Isso é útil para filtrar registros que não devem aparecer na saída final, como clientes que optaram por não receber correspondências.
- Inserir SKIPIF no topo do documento
Posicione o cursor bem no início do documento principal, antes de qualquer outro conteúdo. Pressione Ctrl + F9 para inserir um par de código de campo. - Digitar a condição SKIPIF
Dentro das chaves, digite:SKIPIF MERGEFIELD OptOut = "Sim". Pressione F9 para atualizar. - Executar a mesclagem
Ao mesclar para um novo documento ou impressora, qualquer registro onde OptOut for igual a “Sim” será ignorado completamente. Os registros restantes são impressos sequencialmente.
Importante: SKIPIF só funciona durante a operação real de mesclagem (Correspondências > Concluir e Mesclar). Não funciona no painel Resultados da Pré-visualização. Sempre teste em um pequeno conjunto de registros primeiro.
Campos Aninhados para Condições Complexas
Você pode aninhar campos dentro do texto verdadeiro ou falso de um campo IF para construir lógica mais complexa. Por exemplo, você pode querer exibir um valor de desconto apenas se o cliente for membro e o total da compra exceder R$ 100.
- Inserir o campo IF externo
Pressione Ctrl + F9 e digite:IF MERGEFIELD Member = "Sim" "" "". Deixe ambos os argumentos de texto vazios por enquanto. - Adicionar o campo IF aninhado
Na área de texto verdadeiro (entre o primeiro par de aspas), pressione Ctrl + F9 novamente e digite:IF MERGEFIELD Total > 100 "Você economiza R$ 10!" "". O código de campo completo se torna:{ IF MERGEFIELD Member = "Sim" "{ IF MERGEFIELD Total > 100 "Você economiza R$ 10!" "" }" "" }. - Atualizar e pré-visualizar
Pressione F9 para atualizar. Pré-visualize registros para confirmar que a mensagem aparece apenas para membros com total acima de 100.
O aninhamento pode ter vários níveis de profundidade, mas mantenha a lógica simples para facilitar a manutenção. Se precisar de muitas condições, considere reestruturar sua fonte de dados para incluir uma coluna calculada.
Erros Comuns e Limitações com Campos Condicionais
Códigos de Campo Aparecem em Vez do Resultado
Se você vir { IF … } em vez da saída mesclada, está na visualização de código de campo. Pressione Alt + F9 para alternar para os resultados do campo. Certifique-se também de atualizar todos os campos selecionando o documento inteiro e pressionando F9.
Texto Condicional Quebra em Quebras de Página
Um campo IF que contém um parágrafo com uma quebra de página pode se dividir incorretamente. Coloque quebras de página fora do campo IF ou use quebras de seção em vez de quebras de página dentro de blocos condicionais.
SKIPIF Não Filtra na Pré-visualização
Conforme observado anteriormente, SKIPIF só funciona durante a mesclagem real. Use Correspondências > Resultados da Pré-visualização para verificar outros campos, mas verifique a exclusão de registros mesclando para um novo documento.
Incompatibilidade de Tipo de Dados em Comparações
Números armazenados como texto no Excel não corresponderão a comparações numéricas. Certifique-se de que os campos numéricos estejam formatados como números na fonte de dados. Se necessário, use a função VAL dentro do código de campo: { IF { MERGEFIELD Total \# "0" } > 100 ... }.
Campo IF vs SKIPIF: Quando Usar Cada Um
| Item | Campo IF | Campo SKIPIF |
|---|---|---|
| Finalidade | Exibir ou ocultar conteúdo condicionalmente para cada registro | Excluir registros inteiros da saída da mesclagem |
| Posicionamento | Em qualquer lugar no corpo do documento | Deve estar no topo do documento |
| Efeito sobre outros campos | Afeta apenas o texto dentro do campo | Ignora o registro inteiro, todos os campos |
| Funciona na Pré-visualização | Sim | Não |
| Caso de uso | Saudação diferente, parágrafos opcionais, preços dinâmicos | Filtrar registros inativos, com opt-out ou duplicados |
Você pode combinar ambos no mesmo documento. Coloque um SKIPIF no topo para remover registros indesejados e, em seguida, use campos IF no corpo para personalizar o que resta.
Agora você tem três métodos confiáveis para adicionar lógica condicional à mala direta do Word sem escrever VBA. Comece com um campo IF simples para saudações e depois experimente o SKIPIF para filtrar registros. Para cenários avançados, aninhe campos dentro de IF para verificar múltiplas condições. Sempre teste sua mesclagem com uma pequena amostra antes de processar milhares de registros. Como próximo passo, explore os switches MERGEFORMAT e \ MERGEFORMAT para preservar a formatação dentro de campos aninhados.