Alastair Collier
Alastair Collier

Reputation: 118

Add BCC to email with VBA in Outlook 2013

I can't figure out the correct VBA code for Outlook 2013 to add a fixed email address to the BCC field of an email while it is open for editing. I have the following code, which creates the email and then sets the BCC.

I want to add BCC to emails that I am replying to, so the message will already be in 'draft' form.

Sub sendcomment_click()
Set oMsg = Application.CreateItem(olMailItem)

With oMsg
    .Recipients.Add ("email address")
    'Set objRecip = Item.Recipients.Add("email address")
    'objRecip.Type = olBCC
    'objRecip.Resolve

    ' Join Email addresses by "; " into ".BCC" as string
    .BCC = "[email protected]; [email protected]"

    .Subject = "New Comment by"
    .Body = "sdfsdfsdf"
    .Display ' Comment this to have it not show up
    '.Send ' Uncomment this to have it sent automatically
End With

Set oMsg = Nothing
End Sub

* Update *

I implemented the great advice from Dmitry

My code now reads:

Sub BCC()
Dim objRecip As Recipient
Set oMsg = Application.ActiveInspector.CurrentItem

With oMsg

Set objRecip = item.Recipients.add("[email protected]")
objRecip.Type = olBCC
objRecip.Resolve

End With

Set oMsg = Nothing

End sub

However, when I try to run it I get an error "Run Time error '424' Object required" and it highlights the line:

Set objRecip = item.Recipients.Add("[email protected]")

Upvotes: 9

Views: 22221

Answers (2)

Dmitry Streblechenko
Dmitry Streblechenko

Reputation: 66255

Instead of Application.CreateItem(olMailItem), use Application.ActiveInspector.CurrentItem. If you set the BCC property, you will wipe out all existing BCC recipients. Use Recipients.Add (you have it commented out above) for each email address.

Upvotes: 6

Mostafa Bedor
Mostafa Bedor

Reputation: 21

You need to define Item:

Sub Bcc()
Dim objApp As Outlook.Application
Set objApp = Application
Dim objRecip As Recipient
Dim Item As MailItem
Set Item = objApp.ActiveInspector.CurrentItem
With objMsg
Set objRecip = Item.Recipients.Add("[email protected]")
objRecip.Type = olBCC
objRecip.Resolve
End With
End Sub

Upvotes: 1

Related Questions