Outlookの署名を使い分けるVBAコードの作成

スポンサーリンク

メールを送る際の署名を使い分けるのは面倒なので、VBAで便利にならないか?

便宜上複数の肩書きを使用して仕事をすることになり、Outlookでメールを送る際に署名をいちいち使い分けて送るのが面倒になってきました。

そこで送信するときに確認画面が表示され、署名を選択することができるようにVBAコードを作成してみました。

メールの署名を使い分けるVBAコード

私が作成した署名を変更するVBAコードは以下のようになります。

マクロを実行すると「署名を変更しますか?」と確認画面が表示され、「はい」を選択すると署名を変更した状態でメールを送信し、「いいえ」を選択すると署名を変更せずにメールを送信する仕組みになっています。

Sub 署名変更確認()
Dim rc As Integer
rc = MsgBox(“署名を変更しますか?”, vbYesNoCancel , “確認”)
If rc = vbYes Then
署名変更して送信
Else
署名変更せず送信
End If
End Sub
 
Private Sub 署名変更して送信()
’送信の際、変更した後の署名を設定します。
Const SIGNATURE1 = _
“□□□□□□□□□□□□□□” & vbCrLf & _
“株式会社○○○○” & vbCrLf & _
“○○部 ××課” & vbCrLf & _
“      山田 太郎” & vbCrLf & _
“mail :000@0000.co.jp” & vbCrLf & _
“tel :000-0000-0000” & vbCrLf & _
“□□□□□□□□□□□□□□” & vbCrLf

Dim objMail As MailItem
Dim objWord ’As Word.Document
Dim objSignature ’As Word.Bookmark

Set objMail = ActiveInspector.CurrentItem
’署名の置き換え
Set objWord = ActiveInspector.WordEditor
Set objSignature = objWord.Bookmarks(“_MailAutoSig”)
objSignature.Range.Text = SIGNATURE1
’メールの送信
objMail.Send

Set objSignature = Nothing
Set objWord = Nothing
Set objMail = Nothing
End Sub
 
Private Sub 署名変更せず送信()
Dim objMail As MailItem
Set objMail = ActiveInspector.CurrentItem
’メールの送信
objMail.Send
Set objMail = Nothing
End Sub

あとはこの「署名変更確認」のマクロ(VBAコード)をクイックアクセスツールバーに登録すれば完了です。

メールを送る際には送信ボタンを押す代わりに、クイックアクセスツールバーに登録したマクロ(VBAコード)を実行すればOKです。

スポンサーリンク

このマクロ(VBAコード)の実行時の注意点

そもそも署名変更した後すぐにメールを送ってしまうので、あまり問題は起こらないのですが、このマクロ(VBAコード)は1つのメールについて1回しか実行できません。

objWord.Bookmarks(“_MailAutoSig”)で変更後の署名の情報を取得できないのが原因のようですが、さらに詳しい部分はわかりませんでした。

このVBAコードを元に独自に修正する際は注意してください。

コメント