Reputation: 13
This code sends mail with MS Word.
The mail body is same as the Word content but the mail body is unformatted.
How is it possible to insert the formatted Word document content into the mail body?
Sub SendDocumentInMail()
Dim bStarted As Boolean
Dim oOutlookApp As Object
Dim oItem As Object
On Error Resume Next
'Get Outlook if it's running
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
'Outlook wasn't running, start it from code
Set oOutlookApp = CreateObject("Outlook.Application")
bStarted = True
End If
'Create a new mailitem
Set oItem = oOutlookApp.CreateItem(olMailItem)
With oItem
'Set the recipient for the new email
.To = "[email protected]"
'Set the recipient for a copy
.CC = "[email protected]"
'Set the subject
.Subject = "New subject"
'The content of the document is used as the body for the email
.Body = ActiveDocument.Content
.Send
End With
If bStarted Then
'If we started Outlook from code, then close it
oOutlookApp.Quit
End If
'Clean up
Set oItem = Nothing
Set oOutlookApp = Nothing
End Sub
Upvotes: 0
Views: 281
Reputation: 13
(Edited on 2018.11.19)
After some hours I found the solution:
Sub SendMail()
Selection.WholeStory
Selection.Copy
Dim olapp As Object
Dim olemail As Object
Dim olInsp As Object
Dim wddoc As Object
On Error Resume Next
Set olapp = GetObject(, "Outlook.Application")
If Err <> 0 Then Set olapp = CreateObject("Outlook.Application")
On Error GoTo 0
Set olemail = olapp.CreateItem(0)
With olemail
.BodyFormat = 3
.To = "[email protected]"
.Subject = "Test mail"
Set olInsp = .GetInspector
Set wddoc = olInsp.wordeditor
wddoc.Content.Paste
.Display
End With
End Sub
Upvotes: 1