View Single Post
 
Old 04-27-2020, 06:05 AM
gmayor's Avatar
gmayor gmayor is offline Windows 10 Office 2016
Expert
 
Join Date: Aug 2014
Posts: 4,138
gmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud of
Default

There are a couple of issues that need attention in your code, but for the main part, the document you have created from your template can be saved as a temporary file, attached to the message and then deleted e.g. as follows. Personally I would use the code at Test if Outlook is open and open Outlook with VBA to open/start Outlook, but this will work with some minor changes.


Code:
Private Sub CommandButton1_Click()
'Graham Mayor - https://www.gmayor.com - Last updated - 27 Apr 2020
Dim OL As Object
Dim olInsp As Object
Dim EmailItem As Object
Dim Doc As Document
Dim wdDoc As Document
Dim oRng As Range
Dim strPath As String
    strPath = Environ("TEMP") & "\Filename.docx" 'change name as required

    Application.ScreenUpdating = False
    Set OL = CreateObject("Outlook.Application")
    Set EmailItem = OL.CreateItem(0)
    Set Doc = ActiveDocument
    Doc.SaveAs2 FileName:=strPath, FileFormat:=12, AddToRecentFiles:=False

    With EmailItem
        .Subject = "ENTER SUBJECT LINE HERE"
        .To = "ENTER RECIPIENT EMAIL HERE"
        '.CC = "ENTER A CC EMAIL ADDRESS AND REMOVE COMMENT OUT TO MAKE LIVE"
        .Importance = 2

        Set olInsp = .GetInspector
        Set wdDoc = olInsp.WordEditor
        Set oRng = wdDoc.Range
        oRng.Collapse 1
        .Display 'This line is required
        oRng.Text = "ENTER MESSAGE HERE"    '& vbCrLf & _
                                            '"BODY SECND LINE" & vbCrLf & _
                                            '"BODY THIRD LINE"
        .Attachments.Add strPath
        .Send
    End With
    Doc.Close 0
    Kill strPath
    Application.ScreenUpdating = True
    Set OL = Nothing
    Set EmailItem = Nothing
    Set olInsp = Nothing
    Set wdDoc = Nothing
    Set oRng = Nothing
End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019)
Visit my web site for more programming tips and ready made processes www.gmayor.com
Reply With Quote