差出人の名前を変更して送信するマクロ


コメントにて以下のご要望をいただきました。


いつも頼りにさせていただいています。

Outlook2010ですが、海外の人向けにメールを送る際に、差出人の名前を英語に変更したい(日本に送る際は日本語で)とおもい、ItemSendで変更しようと思ったのですが読み取り専用ばかりで、良いプロパティが見つかりません。

アドバイス頂けると助かります。


差出人を変更したい場合、MailItem オブジェクトの SentOnBehalfOfName プロパティで変更が可能です。
ただし、このプロパティの名前からすると差出人の名前だけ変更するようなイメージになるのですが、実際には名前だけを指定するとその名前でアドレス帳を検索し、名前解決されたユーザーとして送信しようとします。
そのため、自分自身のアドレスで名前だけ変えたい場合は、名前の後に “<SMTP アドレス>” という文字を追加する必要があります。
また、このプロパティで差出人の名前を変えられるのは POP や IMAP といったインターネットのアカウントを使用している場合のみです。
Exchange サーバー環境や Outlook.com では差出人の名前はサーバー上の情報をもとに設定され、クライアント側で指定された名前が無視されるためです。
ItemSend で変更したいとのことだったのですが、どのような基準で日本語と英語を使い分けるのかがちょっと不明だったので、差出人を変更して送信するマクロとしました。
マクロは以下のようになります。

' ここをトリプルクリックでマクロ全体を選択できます。
Public Sub SendUsingAlternativeName()
     ' 変更後の名前を指定
     Const ALT_NAME = "Test User"
     '
     Dim objMail As MailItem
     ' 表示しているメールを取得
     Set objMail = ActiveInspector.CurrentItem
     ' 差出人を指定
     objMail.SentOnBehalfOfName = ALT_NAME & " <" & _
         Session.CurrentUser.Address & ">"
     ' メールを送信
     objMail.Send
End Sub

マクロの登録方法やメニューへの追加について

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中