5
votes
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
objMail.To = "[email protected]"
objMail.cc = "[email protected]"
objMail.Subject = "Mail test"
objMail.HTMLBody = "This is my message"
unload me
objMail.Display
Set objMail = Nothing
Set objOutlook = Nothing

I am trying to add in another function that help to reply a selected email but can't figure out how I can mix this with Item As Outlook.MailItem I understand that replying an email will require that.

So I would like to know how I can add on so that I can select an email, execute the macro and it will input the recipient email into objMail.To and recipient's body into objMail.HTMLBody

1
When reply use Dim Item As Outlook.MailItem then Item.Reply or Item.ReplyAll0m3r
Hi Omar, thanks. But it doesn't work. Does that function 'Dim Item As Outlook.MailItem' help to detect what email I have selected as well?Zheng Yi Chew
You just want to reply to selected email?0m3r
Yes, sorry if I misinterpreted my question. My actual plan is to select an email in inbox, and click the macro button so that it will display exactly what is shown just like when you click the reply button, but the only difference is to input my message(using objMail.HTMLBody) into the email as well.Zheng Yi Chew

1 Answers

6
votes

To simply Reply or ReplyAll selected messages try the following.

Option Explicit
Sub ReplyMSG()
    Dim olItem As Outlook.MailItem
    Dim olReply As MailItem ' Reply
    Dim olRecip As Recipient ' Add Recipient

    For Each olItem In Application.ActiveExplorer.Selection
    Set olReply = olItem.ReplyAll
    Set olRecip = olReply.Recipients.Add("Email Address Here") ' Recipient Address
        olRecip.Type = olCC
            olReply.HTMLBody = "Hello, Thank you. " & vbCrLf & olReply.HTMLBody
        olReply.Display

        'olReply.Send
    Next olItem
End Sub

To hide the recipient use BCC Example

olRecip.Type = olBcc

To add multiple recipient just add

Set olRecip = olReply.Recipients.Add("Email Here")
Set olRecip = olReply.Recipients.Add("Email Here")
Set olRecip = olReply.Recipients.Add("Email Here")

With out Recipient try the following.

Option Explicit
Sub ReplyMSG()
    Dim olItem As Outlook.MailItem
    Dim olReply As MailItem ' Reply

    For Each olItem In Application.ActiveExplorer.Selection
    Set olReply = olItem.ReplyAll
            olReply.HTMLBody = "Hello, Thank you. " & vbCrLf & olReply.HTMLBody
        olReply.Display

        'olReply.Send
    Next olItem
End Sub