VBA (Excel) - Enviando Email usando o Outlook
Neste artigo vou mostrar como podemos automatizar o Microsoft Excel usando a linguagem VBA para realizar a seguinte tarefa : Enviar emails usando o Outlook |
Neste artigo, vamos aprender a melhor maneira de enviar e-mails em massa a partir do Excel 2007 usando VBA.
Usando um código bem simples é possível enviar e-mails personalizados para
múltiplos endereços de email.
O assunto do email e a mensagem podem ser customizados para cada destinatário
antes de enviar.
Este código pode ser usado em situações onde temos que enviar muitos emails.
É uma aplicação simples que mostra aos iniciantes e interessados como automatizar tarefas no Microsoft Excel usando a linguagem VBA. Só isso.
O
Visual Basic for Applications (VBA) é uma
implementação do Visual Basic da Microsoft incorporada em todos os programas
do Microsoft Office, bem como em outras aplicações da Microsoft, como o
Visio, e que foi também incorporada pelo menos parcialmente em outros
programas de terceiros como o AutoCAD, Mathcad e WordPerfect. Ele substitui
e estende as capacidades de anteriormente existentes linguagens de
programação de macros específicas para as aplicações e pode ser usado para
controlar a quase totalidade dos aspectos da aplicação anfitriã, incluindo a
manipulação de aspectos do interface do usuário tais como menus e barra das
ferramentas e o trabalho com formulários desenhados pelo usuário ou com
caixas de diálogo. http://pt.wikipedia.org/wiki/Visual_Basic_for_Applications |
Eu estou usando o Microsoft Office Excel 2007, o Microsoft Office Outlook 2007 e o sistema operacional Windows 10, e, portanto, o código deste artigo foi testado somente nestas versões e ambiente.
Antes de prosseguir eu sugiro que você leia os seguintes artigos da seção VBA do site Macoratti .net
Os recursos usados no projeto deste artigo foram:
Antes de iniciar temos que realizar duas configurações no Microsoft Excel 2007:
Obs: A necessidade de habilitar a execução de macros é que por padrão, o Excel coloca um nível de segurança mais elevado pois, códigos maliciosos podem ser executados em scripts através de macros no Excel.
Vamos ativar a guia do desenvolvedor e logo em seguida habilitar a execução de macros.
Para ativar a guia do desenvolvedor (se ainda não estiver ativa) siga os seguintes passos:
Abra o Excel 2007 e ative o Menu principal de opções clicando no botão superior a esquerda, conforme a figura abaixo;
A seguir clique na guia Opções do Excel para abrir a janela - Opções do Excel;
Nesta janela, selecione o item - Mais Usados - e a seguir marque o item - Mostrar guia Desenvolvedor na Faixa de Opções e clique no botão OK;
No menu do Excel selecione a guia do Desenvolvedor e em seguida clique em Segurança de Macro;
Na janela Central de Confiabilidade selecione a opção - Configurações de Macro - e marque o item para habilitar todas as macros conforme a figura abaixo:
Pronto , feito isso já podemos iniciar o desenvolvimento da aplicação VBA no Excel 2007.
Criando a planilha Excel e Enviando Emails
Abra então o Excel 2007, será aberta uma planilha em branco. Clique no botão no canto superior a esquerda para abrir o menu principal de opções;
Selecione a opção Salvar como e clique no item : Pasta de Trabalho Habilitada para Macro do Excel;
Em seguida informe o nome do arquivo : VBA_MandaEmail
Será aberta o arquivo Excel exibindo as três planilhas padrão: Plan1, Plan2 e Plan3;
Vamos inserir alguns dados na planilha Plan1 a partir da célula A1 conforme mostra a figura abaixo:
Nesta planilha informamos :
Nota: Você pode usar qualquer dados e mensagens na planilha este foi apenas um exemplo.
Dessa forma a planilha Plan1 será a planilha origem a partir da qual desejamos obter os endereços de email, o nome e a mensagem que vamos enviar.
Criando a macro para enviar Emails
Agora vamos incluir um botão de comando na planilha criada.
Clique na guia do Desenvolvedor e a seguir clique em Inserir e selecione o controle Botão :
Após selecionar o Botão coloque-o na planilha Excel. Fazendo isso de imediato será aberta a janela atribuir macro;
Informe o nome da macro. No exemplo eu usei o nome MandaEmail.
Clique no botão Novo:
O Editor Visual Basic será aberto com um novo módulo criado e a macro pronta para receber o código.
O próximo passo é clicar no menu Ferramentas -> Referências e incluir as seguintes referências :
A seguir digite o código abaixo para a macro MandaEmail:
Sub MandaEmail()
Dim EnviarPara As String
Dim Mensagem As String
For i = 1 To 10
EnviarPara = ThisWorkbook.Sheets(1).Cells(i, 1)
If EnviarPara <> "" Then
Mensagem = ThisWorkbook.Sheets(1).Cells(i, 3)
Envia_Emails EnviarPara, Mensagem
End If
Next i
End Sub
Sub Envia_Emails(EnviarPara As String, Mensagem As String)
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.to = EnviarPara
.CC = ""
.BCC = ""
.Subject = "Pedido enviado"
.Body = Mensagem
.Display ' para envia o email diretamente defina o código .Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
|
Temos aqui o código da macro MandaEmail e a macro Envia_Emails() que recebe o endereço de email e a mensagem e envia ou apenas exibe o email.
Note que para testar eu estou usando o comando .Display que irá exibir os emails. Para enviar substitua pelo comando .Send.
Retorne ao Microsoft Excel e a seguir selecione o botão e altere o nome de Botão 1 para Enviar Emails:
Pronto ! agora podemos abrir a planilha Excel e clicar no botão Enviar Emails para enviar os emails.
Agora, basta clicar no botão Enviar e pronto !!!
Pegue a planilha com o código VBA aqui: VBA_MandaEmail.zip
Todavia digo-vos a verdade, que vos convém que eu vá; porque, se eu não for, o
Consolador não virá a vós; mas, quando eu for, vo-lo enviarei.
E, quando ele vier, convencerá o mundo do pecado, e da justiça e do juízo.
Do pecado, porque não crêem em mim;
Da justiça, porque vou para meu Pai, e não me vereis mais;
E do juízo, porque já o príncipe deste mundo está julgado.
João 16:7-11
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Visão geral do modelo de objeto Excel: http://msdn.microsoft.com/pt-br/library/wss56bz7.aspx