Como enviar e-mails em massa do Excel VBA com um clique no Excel

Anonim

Você já precisou enviar um e-mail do VBA do Excel para vários IDs de e-mail, fornecidos em uma planilha do Excel? Quer aprender como enviar e-mails do Excel sem abrir o Outlook? Este artigo cobre como você pode automatizar o Outlook e enviar vários e-mails com anexos do Excel em um clique, mantendo as pessoas em Cc e Bcc também.

No final, você também pode baixar o arquivo, para enviar machos instantaneamente para centenas de ids. O arquivo contém macro para enviar e-mail do excel.

Como enviar e-mail do Excel?
Para enviar e-mail do Excel, você precisa entender esses trechos de VBA.

Importante: Você deve ter um e-mail configurado no aplicativo Outlook.

Pressione F11 para abrir o Editor VB.

  • Adicione uma referência à biblioteca de objetos do Outlook:
      • Vá em Ferramentas no menu e clique em Referências.

    • Encontre a Biblioteca de objetos 16.0 da Microsoft. A versão pode ser diferente. É 16,0 no Excel 2016. Marque-o. E clique em OK.

    • Crie referências de aplicativo Outlook e e-mail: Agora, para poder acessar os recursos do Microsoft Outlook, precisamos criar seu objeto.
Dim outApp As Outlook.Application 'Isso criará uma referência ao objeto do Outlook. Dim outApp As Outlook.MailItem 'Isso criará uma referência a MailItem. 
    • Inicialize as referências: As referências acima precisam ser inicializadas:
Set outApp = New Outlook.Application Set outMail = outApp.CreateItem (0)
    • Enviando e-mail usando o objeto outMail: As linhas abaixo definirão o id do e-mail de destino, cc, bcc, assunto, corpo, anexo e comando de envio.
Com outMail .To = "abcd.mail.com" 'Obrigatório. Aqui você define o id de e-mail de destino… cc = "cc.mail.com" 'opcional. Cc mail id se você quiser … BCC = "bcc.mail.com" 'opcional. ID de correio Cco se você quiser … Assunto = subj 'deve ter. A massagem no corpo da correspondência… Corpo = msg 'opcional. A massagem no corpo da correspondência… Anexos.Adicionar "C: /exceltip.com \ test.xlsx" 'opcional. Nome totalmente qualificado do anexo … Enviar 'Obrigatório se você deseja enviar e-mail do excel. Você deseja ver o e-mail no Outlook, use o método .Display. Terminar com 

É isso. É tudo o que você precisa para enviar e-mail do Excel usando o VBA.

Agora vamos ver um exemplo que envia email para cada id de email em uma coluna do Excel separadamente.

Cenário:
Imagine, você recebe uma planilha do excel que contém 100 ids de e-mail, e você precisa enviar um e-mail para cada id de e-mail separadamente. Não só isso, você precisa anexar itens também. Isso levaria horas se você fizer isso manualmente. Portanto, vamos automatizar essa tarefa de correspondência no Excel VBA.

Aqui eu tenho esses dados. Na coluna C, intitulada "Send Mail To", existem vários ids de e-mail. Preciso enviar um e-mail para cada id de e-mail nesta coluna.
Para isso, criei colunas para Assunto, Massagem corporal, CC e BCC.

O "Send Mail To" não deve ter nenhuma célula em branco no meio. Todas as outras colunas podem ter células em branco. Se você quiser
vários ids de e-mail em para em seguida, escreva esses ids de e-mail com vírgulas nesta coluna. Certifique-se de que os ids de e-mail são válidos.

Se você deseja enviar anexos. Escreva os endereços desses arquivos na coluna de anexo.

Escreva o assunto na coluna Assunto.

Massagem na coluna Massagem Corporal.

Se você deseja manter alguém em cc, escreva a id do e-mail na coluna CC. O mesmo para BCC. use vírgula para vários ids de e-mail.

Agora, para enviar e-mails para cada id de e-mail na coluna, siga estas etapas.

  • Pressione Alt + F11 para abrir o Editor VBA no Excel.
  • Adicione referência ao objeto do Outlook seguindo as etapas descritas anteriormente.
  • Em um novo módulo, copie o código abaixo.
'*** Você deve ter um e-mail Outlook configurado no aplicativo Outlook em seu sistema ***' *** adicionar referência à biblioteca de objetos outook de referências em ferramentas *** Sub BulkMail () Application.ScreenUpdating = False ThisWorkbook.Activate ' Criando referências a objetos de aplicativo e MailItem do Outlook Dim outApp As Outlook.Application Dim outMail As Outlook.MailItem 'Criação de variável para conter valores de diferentes itens de correio Dim sendTo, subj, atchmnt, msg, ccTo, bccTo As String Dim lstRow As Long 'Meus dados estão na planilha "Exceltip.com", você pode ter qualquer nome de planilha. ThisWorkbook.Sheets ("Exceltip.com"). Ative 'Obtendo a última linha contendo o id de e-mail na coluna 3. lstRow = Cells (Rows.Count, 3) .End (xlUp) .Row' Variável para conter todos os ids de e-mail Dim rng As Range Defina rng = Range ("C2: C" & lstRow) 'inicializando o objeto do Outlook para acessar seus recursos Defina outApp = New Outlook.Application On Error GoTo cleanup' para lidar com qualquer erro durante a criação do objeto. Faça um loop para iterar em cada linha, mantenha os dados do e-mail em variáveis ​​e envie 'o e-mail para cada id de e-mail. Para cada célula em rng sendTo = Range (cell.Address) .Offset (0, 0) .Value2 subj = Range (cell.Address) .Offset (0, 1) .Value2 & "-MS" msg = Range (cell. Endereço) .Offset (0, 2) .Value2 atchmnt = Range (cell.Address) .Offset (0, -1) .Value2 ccTo = Range (cell.Address) .Offset (0, 3) .Value2 bccTo = Range ( cell.Address) .Offset (0, 4) .Value2 On Error Resume Next 'para entregar qualquer erro durante a criação do objeto abaixo Set outMail = outApp.CreateItem (0)' Escrevendo e enviando um novo e-mail Com outMail .To = sendTo .cc = ccTo .BCC = bccTo .Body = msg .Subject = subj .Attachments.Add atchmnt .Enviar 'este e-mail enviado sem qualquer notificação. Se você quiser ver o e-mail antes de enviar, use o método .Display. End With On Error GoTo 0 'Para limpar qualquer erro capturado anteriormente Set outMail = Nothing' anulando objeto de outmail para o próximo e-mail Próxima célula 'loop termina a limpeza:' liberando todos os objetos criados Set outApp = Nothing Application.ScreenUpdating = True Application.ScreenUpdating = True End Sub 

O código acima enviará emails para cada id de email em uma linha da coluna “send mail to”. Agora, para executar este código, você pode executá-lo diretamente a partir daqui. Ou você pode adicionar uma figura ou botão em sua pasta de trabalho e, em seguida, atribuir essa macro a esse objeto. Eu uso formas porque são personalizáveis. Para fazer isso, siga as etapas abaixo.

    • Vá para a guia Inserir.
    • No grupo Ilustração, você pode encontrar formas, clique na sua forma favorita.

    • Arraste e solte em sua planilha.
    • Embeleze se quiser.
    • Clique com o botão direito nele. Clique em Atribuir Macro.

    • Escolha a macro BulkMail na lista.

  • Saia do modo de edição.

Agora, sempre que você clicar neste objeto, sua macro será executada e enviará e-mails. Verifique os e-mails enviados para garantir.
Você pode baixar o arquivo Excel Mail Sender aqui.

Envie e-mails em massa do Excel VBA com um clique

Divida a planilha do Excel em vários arquivos com base na coluna usando o VBA | Para dividir uma planilha em vários arquivos, com base nos valores de uma coluna, você precisará filtrá-la e copiá-la e colá-la em um novo arquivo.

Como filtrar os dados no Excel usando o VBA. Filtrar dados usando VBA é fácil. Essas linhas simples de códigos filtram os dados de acordo com os critérios fornecidos.

Desativar mensagens de aviso usando VBA no Microsoft Excel 2016 | Ao realizar várias tarefas, como abrir e fechar arquivos, o Excel mostra mensagens de aviso para que você não perca dados. Eles interrompem o código em execução. Para evitá-los

Como fazer loop através de planilhas no Excel usando o VBA | Para ir e voltar em duas ou mais folhas, precisamos percorrê-las. Para percorrer várias folhas, usamos …

7 Exemplos de For Loops no Microsoft Excel VBA | O loop for é a técnica de loop mais usada em qualquer linguagem. O Excel VBA não é exceção.

Artigos populares:

50 atalhos do Excel para aumentar sua produtividade | Torne sua tarefa mais rápida. Esses 50 atalhos farão você trabalhar ainda mais rápido no Excel.

Como usar a função PROCV no Excel | Esta é uma das funções mais usadas e populares do Excel, que é usada para pesquisar valores em diferentes intervalos e planilhas.

Como usar a função CONT.SE no Excel | Conte valores com condições usando esta função incrível. Você não precisa filtrar seus dados para contar um valor específico. A função Countif é essencial para preparar seu painel.

Como usar a função SUMIF no Excel | Esta é outra função essencial do painel. Isso ajuda você a somar valores em condições específicas.