Anyone who does a lot of programming with the VBA editor in order to write a few macros that automate recurring tasks will quickly come into contact with the MailItem.
The MailItem represents the object of the respective e-mail in the code editor. You can assign various properties to it. For example, you can mark selected e-mails as read with a VBA macro or write an automatic reply to an e-mail. One would then also like to assign the correct formatting, e.g. HTML, to such an automatic reply e-mail, as HTML offers considerably more design options than a pure text e-mail.
Use BodyFormat property
To achieve HTML formatting, one must use the BodyFormat property, as shown in the following image and code example.
Sub ReplyMSG() Dim olItem As Outlook.MailItem Dim olReply As MailItem For Each olItem In Application.ActiveExplorer.Selection Set olReply = olItem.Reply olReply.BodyFormat = olFormatHTML '...more code here Next olItem End Sub
In the sample code, reply mails are generated for all emails marked in the inbox and each MailItem of the reply mail is assigned the html format via the BodyFormat property (olFormatHTML).
BodyFormat is an enumeration, which means that you can also simply assign the appropriate numerical value. Besides olFormatHTML there are the following:
- olFormatUnspecified (value 0): no specific formatting
- olFormatPlain (value 1): the mail object is formatted as text-only
- olFormatHTML (value 2): Mail is formatted as HTML
- olFormatRichText (value 3): Mail is output in rich text format, which also offers design options like html.
In order for the code execution to work properly in Outlook, the following must be set under “Tools” ➤ “References” the correct libraries must be selected.
Now you can continue working with olReply and assign text in the form of HTML code, for example.