While you can configure a default message format for composing new messages, Outlook will always reply in the same format as the original message.
From a compatibility and layout maintaining point of view, this makes sense. However, on some occasions, it also makes sense to “upgrade” the message format from Plain Text to HTML.
While you can manually change the message format after pressing Reply, you could be left with the wrong font settings and your Plain Text signature would have been added rather than your HTML signature.
The macro in this guide will let you reply in the HTML format as easy as pressing a “Reply in HTML” button.
ReplyInHTML VBA macro
The ReplyInHTML macro allows you to reply to a Plain Text or Rich Text formatted email message in the HTML format.
As the conversion takes place before the actual reply is initiated, your font settings will automatically be set to your preference and your reply will hold the HTML version of your Signature. While you could manually change these settings, it does involve a fair bit of clicking.
By adding a button for the macro to the main Outlook window and/or the opened Message item window, you have quick access to it and have the option to directly reply in the HMTL message format without having to “fix” the message afterwards.
Quick Install
Use the following instructions to configure the macro in Outlook;
- Download this code-file (
replyinhtml.zip
) or copy the code below. - Open the VBA Editor (keyboard shortcut ALT+F11)
- Extract the zip-file and import the
ReplyInHTML.bas
file via File-> Import…
If you copied the code, paste it into a new module. - Sign your code so you won’t get any security prompts and the macro won’t get disabled.
- Add a button for easy access to the macro.
Add a button of the macro to the QAT for quick access to it.
Macro Code
The following code is contained in the zip-file referenced in the Quick Install. You can use the code below for review or manual installation.
Sub ForceReplyInHTML() '================================================================= 'Description: Outlook macro to reply to a message in HTML ' regardless of the current message format. ' The reply will use your HTML signature as well. ' 'author : Robert Sparnaaij 'version: 1.0 'website: https://www.howto-outlook.com/howto/replyinhtml.htm '================================================================= Dim objOL As Outlook.Application Dim objSelection As Outlook.Selection Dim objItem As Object Set objOL = Outlook.Application 'Get the selected item Select Case TypeName(objOL.ActiveWindow) Case "Explorer" Set objSelection = objOL.ActiveExplorer.Selection If objSelection.Count > 0 Then Set objItem = objSelection.Item(1) Else Result = MsgBox("No item selected. " & _ "Please make a selection first.", _ vbCritical, "Reply in HTML") Exit Sub End If Case "Inspector" Set objItem = objOL.ActiveInspector.CurrentItem Case Else Result = MsgBox("Unsupported Window type." & _ vbNewLine & "Please make a selection" & _ " or open an item first.", _ vbCritical, "Reply in HTML") Exit Sub End Select Dim olMsg As Outlook.MailItem Dim olMsgReply As Outlook.MailItem Dim IsPlainText As Boolean 'Change the message format and reply If objItem.Class = olMail Then Set olMsg = objItem If olMsg.BodyFormat = olFormatPlain Then IsPlainText = True End If olMsg.BodyFormat = olFormatHTML Set olMsgReply = olMsg.Reply If IsPlainText = True Then olMsg.BodyFormat = olFormatPlain End If olMsg.Close (olSave) olMsgReply.Display 'Selected item isn't a mail item Else Result = MsgBox("No message item selected. " & _ "Please make a selection first.", _ vbCritical, "Reply in HTML") Exit Sub End If 'Cleanup Set objOL = Nothing Set objItem = Nothing Set objSelection = Nothing Set olMsg = Nothing Set olMsgReply = Nothing End Sub
Modifications
To also create macros for “Reply All HTML” and “Forward HTML”, you can add an additional copy of the code or the module and modify the name of the Sub and/or the module. In addition, you must change the line
Set olMsgReply = olMsg.Reply
into
Set olMsgReply = olMsg.ReplyAll
or
Set olMsgReply = olMsg.Forward
Note:
The downloadable zip-file already contains 2 modified modules called ReplyAllInHTML.bas
and ForwardInHTML.bas
which can be imported in the same way as the ReplyInHTML.bas
module discussed above and for which you can also add button on the Ribbon or QAT.
Add-in Solution
If you really need to make sure that every message you reply to is in HTML format and also have your signature fixed automatically, as an alternative to this VBA macro, you can instead use an add-in called Bells & Whistles for Outlook from DS Development.
Aside from this feature, and as the name suggests, Bells & Whistles for Outlook adds a lot of other features as well like;
- adding notes to emails
- option to print a selection of an email
- smart reply greetings
- email templates with support for variables/dynamic text
- adding tracking IDs to outgoing messages and count replies
- and much more…