Insert 'Standard Text' to a reply message

O

OU_MartynF

I am trying to insert a block of standard text into a reply message.

Basically when I receive a message I would like to be able to click on reply
and then run a macro that will insert a standard block of text. I have found
some code that nearly works but instead of replying to the original message
it creates a new email to the sender and retains the subject field. It does
however insert the standard text.

It it possible to retain the original message text somehow ?

I am using Outllook 2003 and this is my code

Sub InsertText()
Dim objApp As Outlook.Application
Dim objMsg As Outlook.MailItem
On Error Resume Next

Set objApp = CreateObject("Outlook.Application")
Set objMsg = objApp.ActiveInspector.CurrentItem.Reply

With objMsg
.BodyFormat = olFormatHTML
.HTMLBody = "<p>Standard text block here</p>"
End With

objMsg.Display

Set objMsg = Nothing
Set objApp = Nothing
End Sub


Thanks in advance.

Martyn
 
S

Sue Mosher [MVP-Outlook]

Try using more complete HTML:

.HTMLBody = "<html><body><p>Standard text block here</p></body</html>"
 
O

OU_MartynF

Thanks Sue but it is still firing up a new message rather than including the
original message text below.

Regards

Martyn
 
S

Sue Mosher [MVP-Outlook]

That's what I thought you wanted, since your original code replaced HTMLBody. In other words, Outlook is doing exactly what you're telling it to do -- creating a new reply and replacing the normal reply text with the text you specific. If instead you want to insert your text into the body, you'll need to parse the HTMLBody property of the reply item and insert your text where you want it to appear, e.g. after the <body> tag (which may have attributes).

--
Sue Mosher, Outlook MVP
Author of Microsoft Outlook 2007 Programming:
Jumpstart for Power Users and Administrators
http://www.outlookcode.com/article.aspx?id=54
 
O

OU_MartynF

Sorry Sue, I think I'm out of my depth here. I'm not experienced with coding
as you have probably guessed. Are you able to suggest some code that would
do this ?

Regards

Martyn
 
S

Sue Mosher [MVP-Outlook]

This is about the simplest code I can come up:

strText = "<p>Standard text block here</p>"
strHTML = objMsg.HTMLBody
intBodyStart = Instr(1, strHTML, "<body", vbTextCompare)
intBodyEnd = Instr(intBodyStart, strHTML, ">")
objMsg.HTMLBody = "<html><body>" & strText & _
Mid(strHTML, intBodyEnd + 1)

It parses the HTMLBody into two strings -- the <body> tag and what comes after the <body> tag -- and then concatenates those two strings with the inserted text in the middle.

I would strongly recommend that if you don't have a basic understanding of HTML coding, run don't walk to a basic HTML tutorial.
--
Sue Mosher, Outlook MVP
Author of Microsoft Outlook 2007 Programming:
Jumpstart for Power Users and Administrators
http://www.outlookcode.com/article.aspx?id=54
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top