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

【Outlook VBA】署名を取得する方法(テキスト形式、HTML形式)

2024年3月16日

今回はOutlook VBAでメールの署名を取得する紹介します。

通常Outlookでメールを作成すると、メールの最後に署名が書かれます。
しかし、VBAで「Body=~」として本文を入力すると、署名が消えてしまいます。

今回は署名の内容を取得する簡単なプロシージャを紹介するので活用してみてください。

VBAが難しいと感じたら
VBAのプロに代わりに作ってもらうのはいかがでしょうか?
ココナラでVBAの作成請負を受け付けています。お気軽にご相談ください。

署名を取得するプロシージャ

Function GetSignature1() As String
    '''署名を取得
    
    With CreateItem(olMailItem)
        .display '署名取得のため、一度表示
        GetSignature1 = .body
        .Delete
    End With
End Function

このプロシージャは署名を取得する専用のプロシージャです。

Sub Sample()
    Debug.Print GetSignature1
End Sub

例えば、このようなコードを実行すると署名がイミディエイトウィンドウに表示されます。

このプロシージャでは署名を取得するために、空メールを1つ作成してすぐに削除しています。

署名データにアクセスする方法もあるのですが、このやり方が一番シンプルにできます。

一度表示(Display)するため、画面がちらつくのですがそこはご愛敬というところで。

HTML形式で署名を取得するプロシージャ

署名にリンクなどを入れている場合は、HTML形式で署名を取得する必要があります。

その場合は、こちらのプロシージャを使用してください。

Function GetSignature2(Optional blHtmlBody As Boolean = True) As String
    '''署名を取得
    
    With CreateItem(olMailItem)
        .display '署名取得のため、一度表示
        If blHtmlBody Then
            GetSignature2 = .HTMLBody
        Else
            GetSignature2 = .body
        End If
        .Delete
    End With
End Function

このプロシージャではblHtmlBodyという引数を追加しています。この引数を省略すると、自動的にHTML形式の署名を得られるようにしています。

HTMLではなく、テキストで結果を得たいときは引数にFalseを入れて使います。

試しに、「Debug.Print GetSignature2」や「Debug.Print GetSignature2(Flase)」といったコードを実行して結果を比べてみてください。

VBAが難しいと感じたら
VBAのプロに代わりに作ってもらうのはいかがでしょうか?
ココナラでVBAの作成請負を受け付けています。お気軽にご相談ください。

VBA

Posted by やろまい