転送の際に元の差出人を返信先として設定するマクロ


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


こんにちは。

実は初めましてではありません。以前も助けていただいたことがあります。
そのときは、ありがとうございました。

私、とある任務を持っています。それは、会社の代表メールに着信したメールを振り分けるという、それなりに大事なこと。

しかしOutlook(2013/2016)で普通に転送をすると、「送信者」は当然”私”となります。よって、転送メールを受け取った人は、それほど深く考えずメールに対し返信をすることで、すべて私に戻ってくるわけです。

これの解決策として、世の中には「リダイレクト」という仕組みが用意されています。Outlookでも「仕分けルール」を使うことで(自動的に)行えるようですが、自動的ではダメなのです。

受信したメールを確認し、”このメールは人事課”,”このメールは総務課”とひとつひとつ大事に転送を掛けていきたいのですが、Outlook(手動)でなんとか出来るようになりませんか?

よろしくお願いいたします。

風のピエロ


残念ながら、Outlook ではリダイレクトを実現することはできません。
仕分けルールでリダイレクトが使用できるのは、Exchange サーバーにリダイレクト機能が実装されており、サーバー上でルールが実行されるためです。

ただ、Outlook ではメールの返信先を指定できるので、転送の際に元のメールの差出人を返信先に指定すれば、転送メールの返信が元のメールの差出人に返されるようになります。

返信先の指定を自動的に行うマクロは以下のようになります。

' ここをトリプルクリックでマクロ全体を選択できます。
Public Sub ForwardWithReplyTo()
     Dim orgMail As MailItem
     Dim fwdMail As MailItem
     Dim oneRecip As Recipient
     Dim newRecip As Recipient
     ' 現在表示中のメールを取得
     Set orgMail = ActiveInspector.CurrentItem
     ' 転送メールを作成
     Set fwdMail = orgMail.Forward
     ' 転送メールの返信先に元のメールの差出人を追加
     Set newRecip = fwdMail.ReplyRecipients.Add(orgMail.SenderEmailAddress)
     newRecip.Resolve
     ' 転送メールの返信先に元のメールの宛先、Cc を追加
     For Each oneRecip In orgMail.Recipients
         Set newRecip = fwdMail.ReplyRecipients.Add(oneRecip.Address)
         newRecip.Type = oneRecip.Type
         newRecip.Resolve
     Next
     ' 転送メールを表示
     fwdMail.Display
End Sub

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

広告

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中