VBA Excel - Enviando o Gráfico para o corpo do e-mail - Code to send Chart in Outlook Mail body



Para que possamos inserir tabelas, comentários e os gráficos propriamente ditos, precisamos ter a liberalidade de saber fazê-lo, segue o modo:

Sub ExportChart2OutlookBody()

    Dim olMail As MailItem
    Dim objOL As Object
    Dim chrtpth As String
    Dim bdy As String
    Dim startmsg As String
    Dim endmsg As String
    
    ' Crie um único Nome.
    Let chrtpth = ThisWorkbook.Path & "\" & Environ("USERNAME") & VBA.Format(VBA.Now(), "DD_MM_YY_HH_MM_SS") & ".bmp"

    ' Mude o nome do gráfico e da Planilha que deseja exportar.
    Sheets("Sheet1").ChartObjects("Chart 3").Chart.Export chrtpth
    
    ' Adicione o conteúdo do e-mail, bem como o gráfico que deseja inserir no corpo deste.
    
    Let bdy = "<p align='Left'><img src=""cid:" & Mid(chrtpth, InStrRev(chrtpth, "\") + 1) & """  width=700 height=500 > <br> <br>"

    Let startmsg = "<font size='5' color='black'> Hi Ashish," & "<br> <br>" & "Please find the chart below: " & "<br> <br> </font>"
    endmsg = "<font size='4' color='black'> Many Thanks," & "<br>" & "Ashish Koul" & "<br> <br> </font>"    
    
    ' Envie o e-mail.
    
    Set objOL = CreateObject("Outlook.Application")
    Set olMail = objOL.CreateItem(olMailItem)
    
    With olMail
        Let .To = "bernardess@gmail.com"
        Let .Subject = "Adicionando um gráfico ao corpo do e-mail"
        Let .Attachments.Add chrtpth
        Let .HTMLBody = startmsg & bdy & endmsg

        .Display
    End With
    
    ' Apaga o gráfico exportado.
    Kill chrtpth
    
    Set olMail = Nothing
    Set olApp = Nothing

End Sub


Tags: VBA, excel, chart, export, outlook,


Nenhum comentário:

Postar um comentário

diHITT - Notícias