Add your signature to pre-formatted emails
August 25, 2008 – 3:46 pm by JP
Ever wanted to have an army of pre-formatted emails, which you can send at the click of a button, but couldn't figure out how to programmatically insert your signature at the end? Here's one method that should work for you.
First you should make a note of whether your signature is appended automatically to new emails. If you're not sure, start Outlook and go to Tools > Options > Mail Format and check the 'Signature for new messages' box. If you have a named signature there, then your chosen signature is being added to every new message you originate.
Here is your sample code:
-
Sub StockMsgWithSignatureVersion1()
-
-
Dim NewMsg As Outlook.MailItem
-
-
Set NewMsg = CreateItem(olMailItem)
-
-
NewMsg.Display
-
-
With NewMsg
-
.Subject = "Here's my subject"
-
.HTMLBody = "<p>Hello,</p>" & _
-
"<p>Here's my daily stats report: </p>" & _
-
"<p>Number of emails I ignored: <br />" & _
-
"Meetings missed: <br />" & _
-
"Files deleted by mistake: <br />" & _
-
"Presentations not upated: </p>" & .HTMLBody
-
End With
-
-
Set NewMsg = Nothing
-
End Sub
Very simply, we create a new mail message and update the body with our chosen text, moving the signature below the added text. Keep in mind this is the HTMLBody property, so we don't use vbCr or vbCrLf when we want a new line; we have to use HTML tags like <br /> and <p> to format the email body.
We can get more complicated with this. We can add arguments to the sub, which are then called from another sub which can be assigned to a toolbar button. For example:
-
Sub StockMsgWithSignatureVersion2(strSubject As String, Ignored As Long, _
-
Missed As Long, Files As Long, Pres As Long)
-
-
Dim NewMsg As Outlook.MailItem
-
-
Set NewMsg = CreateItem(olMailItem)
-
-
NewMsg.Display
-
-
With NewMsg
-
.Subject = strSubject
-
.HTMLBody = "<p>Hello,</p>" & _
-
"<p>Here's my daily stats report: </p>" & _
-
"<p>Number of emails I ignored: " & Ignored & "<br />" & _
-
"Meetings missed: " & Missed & "<br />" & _
-
"Files deleted by mistake: " & Files & "<br />" & _
-
"Presentations not upated: " & Pres & "</p>" & .HTMLBody
-
End With
-
-
Set NewMsg = Nothing
-
End Sub
-
Sub CallMySub()
-
Call StockMsgWithSignatureVersion2("Hey now!", 30, 3, 5, 8)
-
End Sub
The sub CallMySub would be added to a toolbar button (see Resend This Message for instructions). Just create several copies of it, with different parameters, and give each toolbar button a different name.
But what about if your signature is not being inserted automatically? Here is the code you should use:
-
Sub StockMsgWithSignatureVersion3()
-
-
Dim NewMsg As Outlook.MailItem
-
Dim objInsp As Outlook.Inspector
-
Dim cbc As Office.CommandBarPopup
-
Dim cbControls As Office.CommandBarControls
-
Dim cbButton As Office.CommandBarButton
-
-
Set NewMsg = CreateItem(olMailItem)
-
-
NewMsg.Display
-
-
Set objInsp = ActiveInspector
-
If Not objInsp Is Nothing Then
-
Set cbc = objInsp.CommandBars.FindControl(, 31145)
-
End If
-
-
If Not cbc Is Nothing Then
-
Set cbControls = cbc.Controls
-
End If
-
-
For Each cbButton In cbControls
-
If cbButton.Caption = "Signature" Then
-
cbButton.Execute
-
Exit For
-
End If
-
Next
-
-
With NewMsg
-
.Subject = "Here's my subject"
-
.HTMLBody = "<p>Hello,</p>" & _
-
"<p>Here's my daily stats report: </p>" & _
-
"<p>Number of emails I ignored: <br />" & _
-
"Meetings missed: <br />" & _
-
"Files deleted by mistake: <br />" & _
-
"Presentations not upated: </p>" & .HTMLBody
-
End With
-
-
ExitProc:
-
Set cbControls = Nothing
-
Set cbc = Nothing
-
Set objInsp = Nothing
-
Set NewMsg = Nothing
-
End Sub
The above code sets an object reference to the Insert|Signature command on the toolbar (using the FindControl ID) and loops through all the buttons on the submenu until it finds one with the name "Signature" (which is the name of the signature we want to use). Otherwise it's exactly the same as the code at the top of the post. Make sure to substitute the name of the signature you want to use.
Enjoy,
JP
Print This Post
|
Email This Post
|
Permalink
|
Filed Under: Outlook, VBA
Tags: Outlook, signature
This post has 367 views since August 25, 2008 – 3:46 pm.







