![]() |
|
#1
|
|||
|
|||
|
I'm guessing this has been asked before. I have a button to send my word document, which is a form, and need the button to send it as an email but would like a couple of the fields in the form to be the subject heading in the email along side some default text. Any ideas on the code needed please?
|
|
#2
|
||||
|
||||
|
Sending a document by e-mail is easy enough and has indeed been covered before, however what is the purpose of sending the document and who is it being sent to?
You say it is a 'form'. If you want it to remain as a working form there is little point sending it as the body of a message, so you should save it as a document and send the document as an attachment to a message. The following will do that and as your form should use content controls, it takes the subject from a content control titled subject. You can modify it to use more than one control for the subject if you wish. Note the comment at the top of the macro. It won't work without that code. To convert the form from form fields to content controls you may find Insert Content Control Add-In useful Code:
Option Explicit
Sub Send_As_Mail_Attachment()
'Graham Mayor - https://www.gmayor.com - Last updated - 21 Jul 2019
'Send the document as an attachment in an Outlook Email message
'Requires the code from - http://www.rondebruin.nl/win/s1/outlook/openclose.htm
'to either retrieve an open instance of Outlook or open Outlook if it is closed.
Dim bStarted As Boolean
Dim olApp As Object
Dim oItem As Object
Dim olInsp As Object
Dim wdDoc As Object
Dim oRng As Object
Dim oDoc As Document
Dim strName As String
Dim oCC As ContentControl
Dim strSubject As String
Set oDoc = ActiveDocument
On Error GoTo err_Handler:
oDoc.Save
Set oCC = oDoc.SelectContentControlsByTitle("Subject").Item(1)
If oCC.ShowingPlaceholderText = False Then
strSubject = oCC.Range.Text
Else
strSubject = "Default subject text"
End If
strName = oDoc.FullName
'Get Outlook if it's running
Set olApp = OutlookApp()
'Create a new mailitem
Set oItem = olApp.CreateItem(0)
With oItem
.Display
.To = "someone@somewhere.com"
.Subject = strSubject
.Attachments.Add strName
Set olInsp = .GetInspector
Set wdDoc = olInsp.WordEditor
Set oRng = wdDoc.Range
oRng.Collapse 1
oRng.Text = "Complete the attached form and return to sender."
'.Send 'Restore line after testing
End With
lbl_Exit:
Set oItem = Nothing
Set olApp = Nothing
Set olInsp = Nothing
Set wdDoc = Nothing
Set oDoc = Nothing
Set oRng = Nothing
Exit Sub
err_Handler:
Err.Clear
GoTo lbl_Exit
End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| VBA to create a button to attach the active word doc to an email as a PDF without using Outlook | TAKMalcolm | Word VBA | 1 | 09-21-2017 01:52 AM |
| Sending a document by email from Button, MAC compatible | Ghostbuataar | Word VBA | 0 | 05-02-2016 09:14 AM |
Adding email button to Word form
|
leilers | Word | 5 | 01-09-2012 03:21 PM |
| Adding an Email Button to a Word Document | maddoktor | Word | 0 | 12-01-2011 01:32 PM |
| MS Word form - email button | floydwood | Word VBA | 0 | 05-10-2009 04:11 PM |