Google+

Macro para Enviar Planilha (Ou Intervalo de Células) por Email

 .

Importante: para aplicar o que ensinaremos neste artigo, é essencial que você possua uma conta de email configurada no Microsoft Outlook.

Enviar planilha por email – Simplificando

Um dos principais recursos da suite Office é a integração de seus programas, que é extremamente fácil e prática. Um dos recursos comuns é um aplicativo ter bibliotecas e funções quase “integradas” ao seu escopo para que possa tirar proveito de outros aplicativos. O excel tem diversos casos desse tipo, um desses vamos explicar hoje que é o envio de e-mail via VBA.

Simples envio do documento

No nosso exemplo abaixo, você tem uma planilha de finanças e deseja um botão para facilitar o envio da mesma por e-mail.

1 - enviar planilha por email no excel

No modo de desenvolvedor criaremos a macro para enviar a planilha por email, para inserirmos o código utilize o atalho Alt + F11. Abrindo então o VBA, crie um novo módulo para inserir o código de envio de e-mail.

2 - enviar planilha por email

Podemos “debugar” a função utilizando a tecla F8 ou a tecla F5 para execução do código por inteiro. Após inserir o código na aba de desenvolvimento, podemos associar a execução da macro em um botão, facilitando assim a forma de chamada da mesma.

3 - enviar planilha por email excel

Com o botão já criado no excel, devemos associar a macro desejada:

4 - macro para enviar planilha por email

Sub EnvioArquivo()

‘ Na linha de código, ele efetua o simples envio do arquivo por e-mail, utilizando uma função nativa já do excel, sem instanciar objetos externos

ActiveWorkbook.SendMail “SeuEmail@exemplo.com”,”Título do assunto”

End Sub

 

Como podemos ver abaixo, o arquivo foi enviado diretamente em anexo:

5 - macros para enviar planilha por email

Utilizando o Outlook

Como falamos no inicio do artigo, algo que sempre devemos pensar é tirar vantagem de tudo que a suite Office tem para nos oferecer, evitando assim horas de desenvolvimento e gerando uma economia de tempo.

Com isso chegamos na situação de que, podemos customizar o nossa macro de envio de planilha por e-mail por completo:

 

Sub ArquivoAnexo()

‘No exemplo abaixo, ele efetua o envio da ultima versão salva da planilha

Dim OutApp As Object

    Dim OutMail As Object

‘Nesse trecho de código, instanciamos um objeto referente ao outlook, como pré-requisito, devemos ter uma conta valida associada para que o exemplo funcione. Possivelmente temos de ter tambem acesso de administrador, para executar a chamada para outra aplicação

Set OutApp = CreateObject(“Outlook.Application”)

    Set OutMail = OutApp.CreateItem(0)

 

On Error Resume Next

    With OutMail

       ‘Campo de destinatario

 .to = “SeuEmail@exemplo.com”

       ‘Com cópia

 .CC = “”

       ‘Cópia oculta

 .BCC = “”

        .Subject = “Controle Financeiro Vol 2”

        .Body = “Controle financeiro Vol 2”

        .Attachments.Add ActiveWorkbook.FullName

        .Display   ‘Podemos tambem usar .Send para enviar direto

    End With

    On Error GoTo 0

 

    Set OutMail = Nothing

    Set OutApp = Nothing

End Sub

Enviando intervalo de células no Corpo do Email

Caso você não esteja interessado em enviar a planilha anexada como ensinamos acima, você também tem a opção de enviar as células que desejar diretamente no corpo do email, para isso basta utilizar apenas o seguinte código:

Sub enviar_corpo_email()

   ‘ Seleciona o intervalo de células a serem enviadas por email.

   ActiveSheet.Range(“A1:B12”).Select

   ActiveWorkbook.EnvelopeVisible = True

   With ActiveSheet.MailEnvelope

      .Introduction = “”

      .Item.To = “seuEmail@exemplo.com”

      .Item.Subject = “Título Assunto”

      .Item.Send

   End With

End Sub

 

E é claro, substituíndo “SeuEmail@exemplo.com” pelo endereço de email para o qual o Excel deve enviar (Mantenha as aspas) e também o “Título Assunto”.

Observe que na terceira linha do código você pode determinar qual a range (Intervalo de células) você quer enviar, muito simples!

Espero ter ajudado, qualquer dúvida poste abaixo nos comentários ou contate-nos pela guia contato logo acima.

Clique Aqui para baixar a planilha com os exemplos vistos neste artigo.

Até  o próximo!

email
Updated: 01/06/2015 — 20:25

5 Comments

Add a Comment
  1. Boa tarde!
    Tenho a macro de enviar e-mail, porém preciso especificar por qual conta será enviado o e-mail. É possível?
    Obrigada.
    Rafaela

    1. Olá minha amiga, tem sim! no artigo está explicando, abaixo onde está em negrito você digita o email para qual será enviado:

      .Introduction = “”
      .Item.To = “seuEmail@exemplo.com
      .Item.Subject = “Título Assunto”
      .Item.Send

      Abraço.
      Raymson

  2. Andrei Correia

    Olá!

    Estou desenvolvendo uma planilha que necessitará destes envios de email mas, como ainda não cheguei nesta parte do projeto, não testei o que fora compartilhado no post.

    Considerando o correto funcionamento da planilha e envio, sabem se o email gerado ficará na Caixa de Saída do Outlook caso a máquina não esteja conectada à internet??

    O intuito da utilização deste projeto é em campo – onde muitas vezes não tenho acesso à internet, de imediato. Porém, assim que logado novamente, gostaria que o tal email fosse enviado automaticamente.

    Fico no aguardo.

    Obrigado.

    1. Olá Amigo!

      Sim, o email ficará na caixa de saída do Outlook.

  3. Excelente! Era exatamente o que eu estava procurando. Valeu!!!!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Excel Prático © Todos os direitos reservados. 2014 - 2016