Попробуйте условный код, чтобы открыть Outlook или использовать уже открытый экземпляр.Мои тесты показывают, что при открытии Outlook в Shell следующий код для установки и открытия объектов Outlook не будет работать сразу.Повторно запустите процедуру, оставив Outlook открытым, и код заработает.
Sub EMTest()
Dim oApp As Outlook.Application, OMail As Outlook.MailItem
On Error Resume Next
Set oApp = GetObject(, "Outlook.Application")
If Err.Number <> 0 Then
Shell ("OUTLOOK")
'allow enough time for app to completely open
Dim Start As Double
Start = Timer
While Timer < Start + 10
DoEvents
Wend
EMTest
End If
Set OMail = oApp.CreateItem(0)
With OMail
.To = "email address"
.Subject = "Subject"
.Display 'email must be displayed for the next line to work to include default signature
.HTMLBody = "Message." & vbNewLine & .HTMLBody
'.Send
End With
Set OMail = Nothing
Set oApp = Nothing
End Sub