We help IT Professionals succeed at work.

"More than One Message or Notes Control" error in VBA when creating Outlook mail item.

Bryce Bassett
Bryce Bassett asked
on
Automating Outlook from within Excel (2016) using VBA, I'm using fairly standard code to create a new mail object, set the To, Subject, Attachments, and Body, and display.
On Error Resume Next
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
    Set oOutlookApp = CreateObject("Outlook.Application")
End If

Set oItem = oOutlookApp.CreateItem(olMailItem)

With oItem
    .To = tostring
    .Subject = "Project Field Schedule: " & skeddeets.Cells(3, 2) & " " & skeddeets.Cells(3, 4)
    .Attachments.Add savedname
    .Body = "Attached please find the latest Field Schedule for the " & skeddeets.Cells(3, 2) & " " _
    & skeddeets.Cells(3, 4) & " project." & vbCrLf & vbCrLf & vbCrLf
    .Display  '.Send
End With

Open in new window

Sometimes it works fine, but about half the time I get this error message:
error
When I dismiss the error a looking at the new mail item, I can in fact see multiple redundant fields in the new email "form."  And I can't edit the body or send the email.  Where did these 'ghost' fields come from?  I've never seen these when I create a New Email from within Outlook.  How can I fix this error?  Thanks!
fields
Comment
Watch Question

Top Expert 2016

Commented:
it is obvious that you are missing some code

 .Attachments.Add savedname   << not defined
Bryce BassettFreelance VBA programmer

Author

Commented:
Thanks, David.  This is only a snippet of my code.  savedname in the full path to the file I want to attach.  It is defined in a prior section and, as you can see in the second screenshot, the attachment is being attached properly.  I'm pretty sure this is not what is causing the error.

any other thoughts?
Kevin CasarezSystems Administrator

Commented:
This just started popping up for me yesterday using the .Net C++ Outlook Interop components.  I think Microsoft may have updated the latest version of Outlook in a way that broke their interoperability APIs, because I have a user still running Office 2013, and they're working fine.  What I don't know now is if there's going to be an update for the interoperability, or if Office is going to need to be updated to fix what was broken.
Bryce BassettFreelance VBA programmer

Author

Commented:
Good to know I'm not the only one, Kevin.  Please let me know if you come upon a solution.  Thanks.
Systems Administrator
Commented:
I just checked back on this issue, and without changing any code, this issue has resolved itself in my environment.  I'm guessing Microsoft has patched Office 2016. Bryce, are you still experiencing this issue?
Bryce BassettFreelance VBA programmer

Author

Commented:
Thanks for checking back, Kevin.   This project has been on hold since I last wrote, but I went in just now and tested a bunch of times and the error no longer occurs for me either.  So hopefully they have fixed it.  Thanks.