I copied the following code directly from MS Knowledge Base Article - 209948. I only call the sub SendMessage one time when a user changes the value in a combo box.
Public objOutlook As Outlook.Application
Public objOutlookMsg As Outlook.MailItem
Public objOutlookRecip As Outlook.Recipient
Public objOutlookAttach As Outlook.Attachment
Public DLEC_TO As String
Public DLEC_CC As String
Public DLEC_SUBJECT As String
Public DLEC_MESSAGE As String
Public Sub SendMessage(Optional AttachmentPath)
' Create the Outlook session.
Set objOutlook = CreateObject("Outlook.Application"
' Create the message.
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
With objOutlookMsg
' Add the To recipient(s) to the message.
Set objOutlookRecip = .Recipients.Add(DLEC_TO)
objOutlookRecip.Type = olTo
' Add the CC recipient(s) to the message.
' Set objOutlookRecip = .Recipients.Add(DLEC_CC)
' objOutlookRecip.Type = olCC
' Set the Subject, Body, and Importance of the message.
.Subject = DLEC_SUBJECT
.Body = DLEC_MESSAGE & vbCrLf & vbCrLf
.Importance = olImportanceHigh 'High importance
' Add attachments to the message.
'If Not IsMissing(AttachmentPath) Then
' Set objOutlookAttach = .Attachments.Add(AttachmentPath)
'End If
' Resolve each Recipient's name.
For Each objOutlookRecip In .Recipients
objOutlookRecip.Resolve
If Not objOutlookRecip.Resolve Then
objOutlookMsg.Display
End If
Next
MsgBox "INSIDE SendMessage BEFORE .Send"
.Send
MsgBox "INSIDE SendMessage AFTER .Send"
End With
Set objOutlookMsg = Nothing
Set objOutlook = Nothing
End Sub