【Outlook VBA】署名を取得する方法(テキスト形式、HTML形式)
今回はOutlook VBAでメールの署名を取得する紹介します。
通常Outlookでメールを作成すると、メールの最後に署名が書かれます。
しかし、VBAで「Body=~」として本文を入力すると、署名が消えてしまいます。
今回は署名の内容を取得する簡単なプロシージャを紹介するので活用してみてください。
署名を取得するプロシージャ
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)」といったコードを実行して結果を比べてみてください。