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.

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.

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

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:

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!