【Outlook VBA】HTML形式で本文を改行させる方法
今回はHTML形式のメールで本文を改行させる方法について解説します。
例えば、上の画像のようにExcelの内容をメール本文に転記するVBAを書いたとします。
これがテキスト形式のメールなら問題ないのですが、HTML形式のメールだと改行が反映されなくなってしまいます。
今回はHTML形式としたときに改行を反映させる方法を紹介します。
HTML形式で本文を改行させる方法
Sub NG_Sample()
'''A1セルの内容をメール本文に転記
'Outlookオブジェクト生成
Dim olApp As Object
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.BodyFormat = 2 'HTML形式
.HTMLBody = Range("A1").Value
.Display
End With
End Sub
初めに改行されないNG例から紹介します。
上のコードはA1セルの内容をHTML形式のメール本文に書き込むマクロです。
しかし、これだとメール本文が改行されません。
Sub OK_Sample()
'''A1セルの内容をメール本文に転記
'Outlookオブジェクト生成
Dim olApp As Object
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.BodyFormat = 2 'HTML形式
'vbLfを<br>タグに置き換える
.HTMLBody = Replace(Range("A1").Value, vbLf, "<br>")
.Display
End With
End Sub
メール本文を改行されるためには、改行をHTML形式に差し替える必要があります。
HTMLでは<br>タグを使うことで改行できます。
それに対して、Excelのセル内ではvbLfで改行されます。
この違いがあるため、HTML形式では改行されないのです。(テキスト形式ならばvbLfで改行されるのでOKです)
そのため、サンプルコードのようにvbLfを<br>タグに置き換えることでHTML形式でも改行させることができます。(置き換えにはReplace関数を使っています)
関連記事
改行コードの違いについては下記記事をご覧ください。
HTMLの関連記事です。