Home » excel » excel – VBA Email with pasted chart and text in body

excel – VBA Email with pasted chart and text in body

Posted by: admin March 9, 2020 Leave a comment

Questions:

The goal of the following code is to paste the selected chart into the email body below my text. However, it continues to paste it above my text. How can I change it to make it paste below? Thanks!

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
    .CC = "[email protected]"
    .BCC = "[email protected]"
    .Subject = "Test"
    .Body = "Dear" & "Macro "

    ActiveSheet.Range("P36:X46").Copy
    Set wEditor = OutApp.ActiveInspector.WordEditor

    wEditor.Application.Selection.Paste

.display
How to&Answers:

Change the selection start and end. Adding an extra line break might also be a good idea. You should also use MailItem.GetInspector instead of Application.ActiveInspector since the message is not yet displayed.

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
    .CC = "[email protected]"
    .BCC = "[email protected]"
    .Subject = "Test"
    .Body = "Dear" & "Macro " & vbCrLf

    ActiveSheet.Range("P36:X46").Copy
    set vInspector = OutMail.GetInspector
    Set wEditor = vInspector.WordEditor

    wEditor.Application.Selection.Start = Len(.Body)
    wEditor.Application.Selection.End = wEditor.Application.Selection.Start

    wEditor.Application.Selection.Paste

.display