Font Size

Profile

Menu Style

Cpanel

25Julho2017

MS Office Gurus

Onde os desenvolvedores Office se encontram

  • Criar conta
    *
    *
    *
    *
    *
    *

    Campos marcados com asterisco (*) são obrigatórios.

Mensagem
  • Kunena is not installed or the installed Kunena version is not supported. The plug-in has now been disabled. Please install/upgrade Kunena to version 1.7 for the Kunena Discuss Plug-in to function properly.

Como criar regra no Outlook 2007 usando VBA

Se o leitor é usuário do Outlook certamente alguma vez já recebeu e-mails indesejados. E-mails indesejados podem ser tratados de várias formas, uma dela é através de software especializado como AS (Antispam). Outra forma é utilizar regras do Outlook.

Regras têm diversas finalidades. Você poderia simplesmente excluir uma mensagem definitivamente ao chegar ou poderia movê-la para uma outra pasta. Você poderia ainda encaminhá-la para seu SmartPhone ou um outro endereço de e-mail qualquer:


Figura 1: Caixa de diálogo de regras do Outlook 2007

Nas versões anteriores ao Outlook 2007 não é possível criar regras utilizando VBA. O melhor que nós poderíamos fazer é criar uma classe a qual é iniciada quando o Outlook abre e esta classe processaria cada e-mail conforme os e-mails são recebidos.

O problema que temos aqui é que poderíamos receber diferentes objetos. Por exemplo, se recebemos uma tarefa, ela não é um e-mail e, portanto, não será tratada como tal e pode gerar erro no seu código o qual precisa ser tratado. Outro problema diz respeito ao sistema de segurança. Com eventos, nós precisamos acessar informações como “remetente”, “assunto”, etc, os quais caem na malha fina do sistema de segurança do Outlook:

Figura 2: Aviso de segurança do Outlook 2007

Obviamente que tal mensagem é completamente indesejável. Então, a solução é utilizar componentes tais como o Redemption para evitar a mensagem de segurança, mas mesmo assim o trabalho é penoso. Ao criarmos uma regra a partir do Excel ainda veremos tal mensagem, não obstante uma vez que a regra tenha sido implementada estamos livres de tal dor de cabeça.

Então, vamos iniciar o nosso pequeno projeto.

Abra o Excel 2007 e em seguida acesse o VBE – Visual Basic Editor (pressione Alt+F11). Aqui, vá a Tools à References para instalar as referências ao Outlook 2007:

Figura 3: Adicionando referências ao projeto VBA

Ao clicar nesta opção uma nova janela é aberta. Role a lista até encontrar as referências aos objetos do Outlook 2007:

Figura 4: Escolhendo a biblioteca a ser utilizada

Com as referências instaladas estamos prontos para escrever nosso código de criação de regras. Adicione um módulo comum ao seu projeto (Insert à Module) onde inseriremos o código abaixo:

Sub criarRegra()

' Declaração dos objetos utilizados no código

 Dim appOutlook As Outlook.Application

Dim cRegras As Outlook.Rules

Dim minhaRegra As Outlook.Rule

Dim acaoMoverPara As Outlook.MoveOrCopyRuleAction

Dim condicaoDe As Outlook.ToOrFromRuleCondition

Dim meuInbox As Outlook.Folder

Dim pastaDestino As Outlook.Folder

 

' Instanciamento dos objetos

Set appOutlook = New Outlook.Application

Set meuInbox = appOutlook.Session.GetDefaultFolder(olFolderInbox)

Set pastaDestino = meuInbox.Folders("TRABALHO")

Set cRegras = appOutlook.Session.DefaultStore.GetRules()

Set minhaRegra = cRegras.Create("Minha Regra Teste", olRuleReceive)

Set condicaoDe = minhaRegra.Conditions.From

' Com a condição

With condicaoDe

' Habilitar a condição

.Enabled = True

' Adicionar remetente da mensagem

' Aqui, utilizo o "nome amigável" que aparece no meu catálogo de

' endereços de e-mail

.Recipients.Add ("Robert Martim")

' Resolver os remetentes para saber se são válidos

.Recipients.ResolveAll

End With

' Determina o tipo de ação. Neste caso será "Mover para pasta"

' (MoveToFolder)

Set acaoMoverPara = minhaRegra.Actions.MoveToFolder

' Com a ação

With acaoMoverPara

' Habilitar a ação

.Enabled = True

' Determinar a pasta de destino

.Folder = pastaDestino

End With

' Salva a regra na lista de regras do Outlook

cRegras.Save

EndSub

Conforme já observado, quando este código é executado pela primeira vez o sistema de segurança do Outlook será ativado. Libere o acesso ao Outlook e determine o tempo máximo de uso do Outlook. Feito isso a regra será adicionada à nossa lista de regras no Outlook conforme mostra a figura:

Figura 5: Regra adicionada ao Outlook 2007

CONCLUSÃO

Neste breve artigo, mostro como utilizar os novos objetos do Outlook 2007 a partir do Excel 2007 para criar regras no Outlook 2007.

O leitor deve estar ciente que este artigo é baseado na versão Beta 2 em inglês. Como esta versão não é comercial, as informações aqui discutidas podem variar do produto final.