Como enviar e-mails a partir de uma planilha do excel usando scripts vba
Usando e-mails como parte de qualquer programa é uma boa maneira de automatizar tarefas importantes, e também melhora significativamente o valor e funcionalidade de qualquer programa ou script.
Conteúdo
Video: |VBA| ENVIAR EMAILS ATRAVÉS DO EXCEL - VBA4ALL
No passado, eu usei e-mail muito em meus trabalhos em lotes e outros scripts automatizados, assim como eu descrevi em artigos anteriores aqui sobre o uso de ferramentas como Enviar correio ou Blat para emitir e-mails diretamente da linha de comando ou de dentro de um script de linha de comando.Enviar e-mails automatizados usando SendEmail & Agendador de Tarefas do WindowsEnviar e-mails automatizados usando SendEmail & Agendador de Tarefas do WindowsNão importa o que seu trabalho é, geralmente todos em algum momento tem que enviar e-mail um chefe ou supervisor com relatórios de status diários, semanais ou mensais.consulte Mais informação
Estes são grandes para aqueles momentos em que você tem um script que está monitorando a saúde de um computador ou o status de um processo específico, mas que se você quiser automatizar o envio de e-mails de dentro do produtos do Office como Word ou Excel?
Há uma série de razões pelas quais você pode querer fazê-lo. Talvez você tem funcionários que atualizar documentos ou planilhas em uma base semanal, e você gostaria de receber uma notificação por e-mail de quando essas atualizações ocorrem, e até mesmo um relatório dos dados de dentro dessas folhas. Existem algumas técnicas que você pode usar para programar e-mails automáticos de dentro do Excel, mas o meu favorito continua CDO.
Enviar e-mails de dentro do Excel
Você provavelmente está pensando que scripting e-mails enviados em um script Excel VBA vai ser dolorosamente complicada. Bem, esse não é o caso em tudo.
CDO é um componente de mensagens usado no Windows por algumas gerações do OS. Ela costumava ser chamado CDONTS, e depois com o advento do Windows 2000 e XP, ele foi substituído por “CDO para Windows 2000”. Este componente já está incluído na sua instalação do VBA dentro do Word ou Excel e está pronto para uso.
Usando o componente torna o envio de e-mails de dentro de produtos Windows com VBA extremamente fácil. Neste exemplo, vou usar o componente CDO no Excel para enviar um e-mail que vai entregar os resultados de uma célula específica Excel.
O primeiro passo é ir ao “Desenvolvedor”Guia do menu, clique em“Inserir”Na caixa de controles e, em seguida, selecione um botão de comando. Desenhá-lo para a folha e, em seguida, criar uma nova macro para ele.
Quando o Excel abre o editor VBA, você está indo a necessidade de adicionar a referência para a biblioteca CDO. Você pode acessar esta no menu Ferramentas e, em seguida, percorra a lista até encontrar “Microsoft CDO para a biblioteca do Windows 2000“. Selecione a caixa de seleção e clique em OK.
Agora você está pronto para usar CDO para emitir e-mails de dentro Excel. Para fazer isso, você primeiro precisa ot criar os objetos de e-mail e configurar todos os campos que serão necessárias para o envio do e-mail. Tenha em mente que, enquanto muitos dos campos são opcionais, de e para os campos são obrigatórios.
Dim CDO_Mail Como ObjectDim CDO_Config Como ObjectDim SMTP_Config Como VariantDim strSubject como StringDim strFrom como StringDim strTo como StringDim strCc como StringDim strBcc como StringDim strBody Como StringstrSubject = "Os resultados de planilha do Excel"strFrom = "[email protected]"strTo = "[email protected]"strCc = ""strBcc = ""strBody = "O total de resultados para este trimestre são: " & Str (Sheet1.Cells (2, 1))
A coisa legal sobre isso é que você um construir qualquer seqüência que você deseja personalizar uma mensagem de e-mail completo e atribuí-lo à variável strBody. componentes juntar da mensagem usando a “&”String para inserir dados de qualquer das folhas de Excel para a direita na mensagem de e-mail, assim como eu mostrei acima.
A próxima seção de código é onde você vai configurar CDO para usar qualquer servidor SMTP externo que você deseja usar. Neste caso, eu não preciso usar SSL porque meu servidor SMTP não o exigir. CDO é capaz de SSL, mas que está fora do escopo deste artigo. Se você precisa usar SSL, eu recomendo writeup incrível de Paul Sadowski sobre a utilização CDO.
Definir CDO_Mail = CreateObject ("CDO.Message") On Error GoTo Error_HandlingSet CDO_Config = CreateObject ("CDO.Configuration") CDO_Config.Load -1Set SMTP_Config = CDO_Config.FieldsWith SMTP_Config.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.metrocast.net".Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25.UpdateEnd withwith CDO_MailSet .Configuration = CDO_ConfigEnd Com
Agora que você já configurou a conexão com o servidor SMTP para o envio do e-mail, tudo que você tem a fazer é preencher os campos apropriados para o objeto CDO_Mail, e emitir o comando Enviar. Isto é como você fazer isso.
Video: Macro para enviar conteúdo de Célula do Excel por e-mail
CDO_Mail.Subject = strSubjectCDO_Mail.From = strFromCDO_Mail.To = strToCDO_Mail.TextBody = strBodyCDO_Mail.CC = strCcCDO_Mail.BCC = strBccCDO_Mail.SendError_Handling: Se Err.Description lt; gt; - Então MsgBox Err.Description
Então, você tem isso. Não haverá qualquer caixas ou mensagens de alerta de segurança pop-up, o que pode acontecer quando você recorrer ao uso do objeto de correio Outlook. CDO simplesmente coloca juntos o e-mail e utiliza suas SMTP detalhes de conexão do servidor para disparar a mensagem. É provavelmente a maneira mais fácil que eu conheço para incorporar e-mail em scripts do Word ou do Excel VBA.
Video: Email pelo excel
Aqui está o que a mensagem parecia que recebi na minha caixa de entrada.
Video: Enviar email automaticamente com o Excel e VBA - Segunda-feira (24/10/2016) 19:00 (Horário de Verão)
Sem problemas - apenas os dados diretamente de dentro da folha de Excel entregues direito à minha conta de email. Se você for criativo com como você montar a variável de cadeia corpo com todos os tipos de dados de sua folha de Excel, você pode apenas imaginar os relatórios de e-mail automatizadas legais que você pode colocar juntos. E se você não quiser usar um botão de comando, basta ter o script executado na folha ou aplicação próximo evento.
você pode pensar em quaisquer usos legais para CDO em seus próprios projetos Excel, Access, ou Word? Compartilhe seus pensamentos e idéias na seção de comentários abaixo.