Como enviar e-mails de uma planilha do Excel usando scripts VBA

Como enviar e-mails de uma planilha do Excel usando scripts VBA

Para enviar e-mails do Microsoft Excel requer apenas alguns scripts simples. Adicione essa funcionalidade às suas planilhas e você poderá realmente aprimorar o que pode realizar no Excel.





Cobrimos muitas macros excelentes do Excel, que podem realizar as mesmas coisas que os scripts VBA, mas sem a necessidade de conhecimento de programação. Mas há muitas coisas avançadas que você só pode fazer com o VBA, como criar um relatório de planilha com todas as informações do seu PC.





Prefere assistir a este tutorial em vídeo? Estamos protegendo você!





Por que enviar e-mail do Excel?

Existem muitos motivos pelos quais você pode querer enviar um e-mail de dentro do Microsoft Excel.

Talvez você tenha uma equipe que atualiza documentos ou planilhas semanalmente e gostaria de receber uma notificação por e-mail quando essas atualizações forem concluídas. Ou você pode ter uma planilha de contatos e deseja enviar um e-mail para todos eles de uma vez.



Você provavelmente está pensando que criar um script de transmissão de e-mail do Excel será complicado. Esse não é o caso.

A técnica neste artigo fará uso de um recurso que está disponível no Excel VBA há muito tempo, Objetos de Dados de Colaboração (CDO).





CDO é um componente de mensagem usado no Windows desde as primeiras gerações do sistema operacional. Ele costumava ser chamado de CDONTS e, com o advento do Windows 2000 e XP, foi substituído por 'CDO para Windows 2000'. Este componente já está incluído na instalação do VBA no Microsoft Word ou Excel e está pronto para uso.

O uso do componente torna o envio de e-mails de produtos Windows com VBA extremamente fácil. Neste exemplo, você usará o componente CDO no Excel para enviar um e-mail que entregará os resultados de uma célula específica do Excel.





Etapa 1: Criar uma macro VBA

A primeira etapa é ir para a guia Excel Developer.

Dentro da guia Desenvolvedor, clique em Inserir na caixa de controles e selecione um botão de comando.

Desenhe-o na planilha e crie uma nova macro para ele clicando em Macros na faixa de opções do desenvolvedor.

Quando você clica no Crio botão, ele abrirá o editor VBA.

Adicione a referência à biblioteca CDO navegando para Ferramentas > Referências no editor.

Role a lista para baixo até encontrar Microsoft CDO para Windows 2000 Library . Marque a caixa de seleção e clique em OK .

Quando você clica OK , anote o nome da função onde você está colando o script. Você precisará disso mais tarde.

Etapa 2: Configurar os campos 'De' e 'Para' do CDO

Para fazer isso, primeiro você precisa criar os objetos de e-mail e configurar todos os campos necessários para enviar o e-mail.

Lembre-se de que, embora muitos dos campos sejam opcionais, o A partir de e Para os campos são obrigatórios.

música amazon ilimitada vs música prime
Dim CDO_Mail As Object
Dim CDO_Config As Object
Dim SMTP_Config As Variant
Dim strSubject As String
Dim strFrom As String
Dim strTo As String
Dim strCc As String
Dim strBcc As String
Dim strBody As String
strSubject = 'Results from Excel Spreadsheet'
strFrom = 'rdube02@gmail.com'
strTo = 'rdube02@gmail.com'
strCc = ''
strBcc = ''
strBody = 'The total results for this quarter are: ' & Str(Sheet1.Cells(2, 1))

O legal disso é que você pode criar qualquer string para personalizar uma mensagem de e-mail completa e atribuí-la ao strBody variável.

Reúna os componentes da mensagem usando o E string para inserir dados de qualquer uma das planilhas do Microsoft Excel diretamente na mensagem de e-mail, como mostrado acima.

Etapa 3: Configurar o CDO para usar um SMTP externo

A próxima seção do código é onde você configurará o CDO para usar qualquer servidor SMTP externo para enviar o e-mail.

Este exemplo é uma configuração não SSL por meio do Gmail. O CDO é capaz de SSL, mas isso está fora do escopo deste artigo. Se você precisar usar SSL, este código avançado no Github pode ajudar.

Set CDO_Mail = CreateObject('CDO.Message')
On Error GoTo Error_Handling
Set CDO_Config = CreateObject('CDO.Configuration')
CDO_Config.Load -1
Set SMTP_Config = CDO_Config.Fields
With SMTP_Config
.Item('http://schemas.microsoft.com/cdo/configuration/sendusing') = 2
.Item('http://schemas.microsoft.com/cdo/configuration/smtpserver') = 'smtp.gmail.com'
.Item('http://schemas.microsoft.com/cdo/configuration/smtpauthenticate') = 1
.Item('http://schemas.microsoft.com/cdo/configuration/sendusername') = 'email@website.com'
.Item('http://schemas.microsoft.com/cdo/configuration/sendpassword') = 'password'
.Item('http://schemas.microsoft.com/cdo/configuration/smtpserverport') = 25
.Item('http://schemas.microsoft.com/cdo/configuration/smtpusessl') = True
.Update
End With
With CDO_Mail
Set .Configuration = CDO_Config
End With

Etapa 4: finalizar a configuração do CDO

Agora que você configurou a conexão com o servidor SMTP para enviar o e-mail, tudo que você precisa fazer é preencher os campos apropriados para o Objeto CDO_Mail , e emitir o Mandar comando.

Aqui está como você faz isso:

CDO_Mail.Subject = strSubject
CDO_Mail.From = strFrom
CDO_Mail.To = strTo
CDO_Mail.TextBody = strBody
CDO_Mail.CC = strCc
CDO_Mail.BCC = strBcc
CDO_Mail.Send
Error_Handling:
If Err.Description '' Then MsgBox Err.Description

Não haverá caixas pop-up ou mensagens de alerta de segurança, o que pode acontecer quando você recorre ao uso do objeto de correio do Outlook.

O CDO simplesmente reúne o e-mail e utiliza os detalhes de conexão do servidor SMTP para disparar a mensagem. É a maneira mais fácil de incorporar e-mail em scripts do Microsoft Word ou Excel VBA.

Para conectar seu botão de comando a este script, vá para o editor de código e clique em Folha1 para visualizar o código VBA dessa planilha.

Digite o nome da função onde você colou o script acima.

melhor maneira de aprender microsoft office

Esta é a aparência da mensagem que recebi em minha caixa de entrada:

Observação : Se você receber um erro que diz O transporte falhou ao conectar ao servidor , certifique-se de inserir o nome de usuário, a senha, o servidor SMTP e o número da porta corretos nas linhas de código listadas abaixo Com SMTP_Config .

Vá além e automatize todo o processo

É muito bom poder enviar e-mail do Excel com o toque de um botão. No entanto, você pode querer usar essa funcionalidade regularmente; nesse caso, faria sentido automatizar o processo.

Para fazer isso, você precisará fazer uma alteração na macro. Vá para o Editor do Visual Basic e copie e cole todo o código que montamos.

Em seguida, selecione ThisWorkbook de Projeto hierarquia.

Nos dois campos suspensos na parte superior da janela de código, selecione Livro de exercícios e selecione Abrir na lista suspensa Métodos.

Cole o script de e-mail acima em Sub Workbook_Open () .

Isso executará a macro sempre que você abrir o arquivo do Excel.

Em seguida, abra Agendador de tarefas .

Você vai usar esta ferramenta para pedir ao Windows para abrir a planilha automaticamente em intervalos regulares, momento em que sua macro será iniciada, enviando o e-mail.

Selecione Criar Tarefa Básica ... de Açao menu e trabalhe seu caminho através do assistente até chegar ao Açao tela.

Selecione Comece um programa e clique Próximo .

Use o Navegar botão para encontrar a localização do Microsoft Excel em seu computador, ou copie e cole o caminho no Programa / roteiro campo.

Em seguida, insira o caminho para o seu documento do Microsoft Excel no Adicionar argumentos campo.

Conclua o assistente e sua programação estará em vigor.

Vale a pena executar um teste agendando a ação para alguns minutos no futuro e, em seguida, corrigir a tarefa assim que puder confirmar que está funcionando.

Observação : Pode ser necessário ajustar as configurações da Central de confiabilidade para garantir que a macro seja executada corretamente.

Para fazer isso, abra a planilha e navegue até Arquivo > Opções > Centro de confiança .

A partir daqui, clique Configurações da Central de confiabilidade , e na próxima tela defina o dial do rádio para Nunca mostre informações sobre conteúdo bloqueado .

Faça o Microsoft Excel trabalhar para você

O Microsoft Excel é uma ferramenta incrivelmente poderosa, mas aprender como aproveitá-lo ao máximo pode ser um pouco intimidante. Se você deseja realmente dominar o software, você precisa ser confortável com VBA , e isso não é tarefa fácil.

como fazer meu próprio filtro snapchat

No entanto, os resultados falam por si. Com um pouco de experiência em VBA, em breve você será capaz de fazer o Microsoft Excel executar tarefas básicas automaticamente, dando a você mais tempo para se concentrar em questões mais urgentes.

Leva tempo para construir experiência com o VBA, mas logo você verá os frutos de seu trabalho se puder continuar com ele.

Um ótimo lugar para começar é nosso autoritário tutorial sobre como usar VBA no Excel . Depois de fazer isso, este script simples para enviar e-mails do Excel parecerá uma brincadeira de criança.

Compartilhado Compartilhado Tweet O email Canon vs. Nikon: Qual marca de câmera é melhor?

Canon e Nikon são os dois maiores nomes da indústria de câmeras. Mas qual marca oferece a melhor linha de câmeras e lentes?

Leia a seguir
Tópicos relacionados
  • Produtividade
  • Programação
  • Dicas de e-mail
  • Programação
  • Programação Visual Basic
  • Microsoft Excel
  • Dicas do Microsoft Office
Sobre o autor Ryan Dube(942 artigos publicados)

Ryan é bacharel em Engenharia Elétrica. Ele trabalhou 13 anos em engenharia de automação, 5 anos em TI e agora é engenheiro de aplicativos. Ex-editor-chefe da MakeUseOf, ele palestrou em conferências nacionais sobre visualização de dados e foi apresentado na TV e no rádio nacionais.

Mais de Ryan Dube

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever