Você quer automatizar uma ação personalizada no Outlook, como mover e-mails para uma pasta específica com base em lógica complexa ou salvar anexos automaticamente. As condições e ações internas das regras podem não atender exatamente às suas necessidades. As regras do Outlook podem executar uma ação de script, mas esse recurso está disponível apenas na versão clássica do Outlook para Windows, não no novo Outlook para Windows ou no Outlook na web. Este artigo explica como habilitar a ação Executar um Script em uma regra e como escrever e atribuir um script VBA simples para automatizar uma tarefa.
Principais Conclusões: Criando uma Regra do Outlook que Executa um Script VBA
- Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro: Habilite todas as macros para permitir que scripts VBA sejam executados quando acionados por uma regra.
- Guia Desenvolvedor > Visual Basic: Abra o editor VBA e insira um novo módulo para escrever seu script para a ação da regra.
- Arquivo > Gerenciar Regras e Alertas > Nova Regra > Começar de uma Regra em Branco > Verificar mensagens > Selecionar ação Executar um Script: Atribua seu script VBA como a ação da regra.
Por que a Ação Executar um Script é Limitada ao Outlook Clássico
A ação Executar um Script faz parte do mecanismo de regras do lado do cliente legado do Outlook. Esse mecanismo é executado no seu computador local e pode executar macros VBA armazenadas no projeto VBA do Outlook. O novo Outlook para Windows e o Outlook na web usam um mecanismo de regras do lado do servidor que não suporta a execução de scripts locais. O Outlook clássico (o aplicativo de desktop completo) mantém esse recurso para compatibilidade com fluxos de trabalho corporativos que dependem de automação personalizada.
A ação de script é executada após as condições da regra serem atendidas. O script deve ser uma sub-rotina VBA no projeto VBA do Outlook que aceita um único argumento do tipo MailItem. O script pode ler ou modificar o item de e-mail, mas não pode criar novos itens ou exibir caixas de diálogo durante a execução da regra. Se o seu script exigir entrada do usuário ou criar novos itens, ele falhará silenciosamente.
Passos para Configurar uma Regra do Outlook que Executa um Script
- Habilitar macros na Central de Confiabilidade do Outlook
Abra o Outlook. Vá em Arquivo > Opções > Central de Confiabilidade. Clique em Configurações da Central de Confiabilidade. Selecione Configurações de Macro. Escolha Habilitar todas as macros. Clique em OK duas vezes para fechar as janelas. - Abrir o editor VBA
Pressione Alt + F11 para abrir o editor Visual Basic for Applications. Se o painel Project Explorer não estiver visível, pressione Ctrl + R para exibi-lo. - Inserir um novo módulo
No Project Explorer, localize Project1 (VbaProject.OTM). Clique com o botão direito e selecione Inserir > Módulo. Uma janela de código em branco será aberta. - Escrever a sub-rotina do script
Cole o seguinte script de exemplo na janela do módulo. Este script move mensagens de um remetente específico para uma pasta chamada “Projeto X”. Substitua o e-mail do remetente e o nome da pasta conforme necessário.Public Sub MoverParaProjetoX(ByVal myMail As Outlook.MailItem) Dim objFolder As Outlook.Folder Set objFolder = Application.Session.GetDefaultFolder(olFolderInbox).Folders("Projeto X") myMail.Move objFolder Set objFolder = Nothing End Sub - Salvar o script
Pressione Ctrl + S para salvar o projeto VBA. Feche o editor VBA. - Criar uma nova regra
Vá em Arquivo > Gerenciar Regras e Alertas. Clique em Nova Regra. Em Começar de uma Regra em Branco, selecione Verificar mensagens quando chegarem. Clique em Avançar. - Definir condições
Selecione as condições desejadas. Por exemplo, marque de pessoas ou grupo público e clique no valor sublinhado na descrição da regra para especificar o remetente. Clique em Avançar. - Atribuir a ação do script
Na lista de ações, role para baixo e marque executar um script. Na área de descrição da regra, clique na palavra script sublinhada. Uma caixa de diálogo exibe uma lista de scripts disponíveis. Selecione MoverParaProjetoX e clique em OK. Clique em Avançar. - Definir exceções e nomear a regra
Adicione exceções se necessário. Clique em Avançar. Digite um nome para a regra, como “Mover E-mails do Projeto X”. Certifique-se de que Ativar esta regra esteja marcado. Clique em Concluir.
Problemas Comuns ao Executar uma Regra de Script
Mensagem “A ação de script não está disponível”
Esse erro aparece quando o projeto VBA não contém uma sub-rotina pública com a assinatura correta. A sub-rotina deve ser Public e aceitar exatamente um argumento do tipo Outlook.MailItem. Se a sub-rotina for Private ou tiver um tipo de argumento diferente, o editor de regras não a listará. Abra o editor VBA e verifique se a declaração da sub-rotina corresponde ao exemplo acima.
O script é executado mas não faz nada
O script pode conter um erro de tempo de execução que é ignorado silenciosamente. Teste o script manualmente executando-o no editor VBA com um item de e-mail de exemplo. Na janela Immediate, digite ?Application.Session.GetDefaultFolder(olFolderInbox).Folders("Projeto X") para confirmar que a pasta existe. Se o nome da pasta estiver escrito errado, o script falhará silenciosamente. Além disso, verifique se a configuração de segurança de macro não está bloqueando a execução. Defina a segurança de macro como Habilitar todas as macros conforme mostrado no passo 1.
A regra é executada mas o script não dispara
O mecanismo de regras pode não acionar ações do lado do cliente se o Outlook estiver em modo cache com uma conexão lenta. Verifique se o Outlook está online. Vá na guia Enviar/Receber e clique em Trabalhar Offline para desativá-lo se estiver ativo. Verifique também se a regra não está configurada para executar apenas neste computador e se o script está salvo no projeto VBA correto. O script deve estar em Project1 (VbaProject.OTM), não em um projeto de suplemento.
| Item | Outlook Clássico | Novo Outlook / Outlook Web |
|---|---|---|
| Tipo de regra | Lado do cliente e do servidor | Apenas lado do servidor |
| Ação Executar um Script | Disponível | Indisponível |
| Requer macro VBA | Sim | Não suportado |
| Melhor para | Automação personalizada no computador local | Regras básicas que funcionam em qualquer lugar |
A ação Executar um Script no Outlook clássico oferece a capacidade de automatizar tarefas que as regras padrão não conseguem lidar, como mover e-mails com base em lógica personalizada ou modificar propriedades de mensagens. Antes de criar uma regra de script, confirme que você está usando o Outlook clássico para Windows e que as macros estão habilitadas. Escreva um script de teste simples primeiro e depois atribua-o a uma regra com uma única condição. Essa abordagem reduz o tempo de solução de problemas e ajuda a aprender a assinatura exata do script necessária. Para automação avançada, considere usar o Power Automate com conectores do Outlook, que funciona em todas as versões do Outlook e não requer VBA.