Always Reply in HTML

Reply in HTML buttonWhile 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

Visual Basic buttonThe 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;

  1. Download this code-file (replyinhtml.zip) or copy the code below.
  2. Open the VBA Editor (keyboard shortcut ALT+F11)
  3. Extract the zip-file and import the ReplyInHTML.bas file via File-> Import…
    If you copied the code, paste it into a new module.
  4. Sign your code so you won’t get any security prompts and the macro won’t get disabled.
  5. Add a button for easy access to the macro.

You can place a "Reply in HTML" button to your Quick Access Toolbar 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

How? buttonTo 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

Add-Ins buttonIf 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.

Bells & Whistles for Outlook - Always reply using HTML

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…