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

【OUTLOOK VBA】署名を残したまま本文を追加する方法

今回はOUTLOOK VBAで署名をそのままに、本文を追加する方法を教えます。

メールアイテム.Body = "~"

OUTLOOK VBAでこのように書くと、メール本文に文字を書き込むことができます。

しかし、このやり方をすると設定している"署名"が消えてしまうという問題がありました。

サイトや本などでも、こういったコードが紹介されていますが、署名は消えてしまいます。

今回紹介する方法では署名はそのままに、本文を追加できるので活用してみて下さい。

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

署名を残したまま本文を追加する方法

Sub AddTextToEmailWithWordEditor()
    
    Dim objMail As Outlook.MailItem
    Dim objInspector As Outlook.Inspector
    Dim objDoc As Object ' Word.Document
    Dim strBody As String
    
    ' 新しいメールアイテムを作成
    Set objMail = Application.CreateItem(olMailItem)
    
    ' 追加したい本文を設定
    strBody = "ここに追加したい本文を入力します。" & vbCrLf & vbCrLf
    
    ' メールのインスペクタを取得
    Set objInspector = objMail.GetInspector
    
    ' Wordエディタのドキュメントを取得
    Set objDoc = objInspector.WordEditor
    
    ' 本文を追加
    objDoc.Content.InsertBefore strBody
    
    ' メールを表示
    objMail.Display
    
    ' オブジェクトを解放
    Set objDoc = Nothing
    Set objInspector = Nothing
    Set objMail = Nothing
End Sub

これが署名を残したままにするサンプルプログラムです。

このプログラムを実行すると、新規メールが作成され、本文の先頭に「ここに追加したい本文を入力します。」と追記されます。(末尾には署名が残ります)

    ' メールのインスペクタを取得
    Set objInspector = objMail.GetInspector
    
    ' Wordエディタのドキュメントを取得
    Set objDoc = objInspector.WordEditor
    
    ' 本文を追加
    objDoc.Content.InsertBefore strBody

本文を追加しているのはこの部分です。

ここでは、新規メールが使用しているWordエディタを利用して本文を追加しています。

実はOutlookのメール作成では内部でWordを使用しています。

そこで、メールが使用しているWordエディタオブジェクトを取得し、Wordエディタのメソッドで先頭に本文を追加しています。「objDoc.Content.InsertBefore」のInsertBeforeというメソッドです。

この方法ならば、追加だけで署名を消したりしないため、署名をそのままに本文を追加することができます。

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

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

VBA

Posted by やろまい