Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

VBA Email with pasted chart and text in body

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
like image 545
New2VBA Avatar asked Jun 19 '15 17:06

New2VBA


1 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
like image 166
Dmitry Streblechenko Avatar answered Sep 22 '22 02:09

Dmitry Streblechenko