このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【Outlook VBA】HTML形式で本文を改行させる方法

今回はHTML形式のメールで本文を改行させる方法について解説します。

例えば、上の画像のようにExcelの内容をメール本文に転記するVBAを書いたとします。

これがテキスト形式のメールなら問題ないのですが、HTML形式のメールだと改行が反映されなくなってしまいます。

今回はHTML形式としたときに改行を反映させる方法を紹介します。

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

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関数を使っています)

<br>タグにすると改行される

関連記事

改行コードの違いについては下記記事をご覧ください。

HTMLの関連記事です。

《VBA上級者になりたい人へ》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

created by Rinker
技術評論社
¥3,608 (2024/10/29 14:16:48時点 Amazon調べ-詳細)
VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい