メールを読んだ際に自動的に返信するマクロ


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


お世話になります。
指定した相手から届いたメールを読んだ際にメールを読んだ事を相手に自動的に返信する様な機能をマクロで実現出来ないでしょうか?
バージョンはoutlook2016です。


このような処理を行う場合、以下の処理が必要になります。

  • メールを受信時に指定した相手からのメールであれば返信が必要という意味のカスタム プロパティを設定する。
  • メールを開いた際に、返信が必要というプロパティが設定されていれば自動的に返信する。

これを実装したマクロは以下のようになります。

' ここをトリプルクリックでマクロ全体を選択できます。
Dim WithEvents mInspectors As Inspectors
'
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    On Error Resume Next
    Dim arrSender As Variant
    Dim oneSender As Variant
    Dim objMail 'As MailItem
    ' 返信が必要な差出人を , で区切って指定
    arrSender = Array("user1@example.com", "user2@example.com", "mchiba@jpoffolk.local")
    Set mInspectors = Application.Inspectors
    Set objMail = Session.GetItemFromID(EntryIDCollection)
    For Each oneSender In arrSender
        If objMail.SenderEmailAddress = oneSender Then
            ' 差出人が一致したらカスタム プロパティを設定
            Dim userProp As UserProperty
            Set userProp = objMail.UserProperties.Add("NeedReadReply", olText)
            userProp.Value = "Yes"
            objMail.Save
        End If
    Next
End Sub
'
Private Sub mInspectors_NewInspector(ByVal Inspector As Inspector)
    Dim objMail As MailItem
    Dim userProp As UserProperty
    Set objMail = Inspector.CurrentItem
    ' 開いたメールのカスタム プロパティを確認
    Set userProp = objMail.UserProperties.Find("NeedReadReply")
    If Not userProp Is Nothing Then
        ' 返信が必要なら開封済みのメッセージを送信
        If userProp.Value = "Yes" Then
            Dim objReply As MailItem
            Set objReply = objMail.Reply
            objReply.Body = "以下のメールを開封しました。" & vbCrLf & _
                "送信日時:" & objMail.SentOn & vbCrLf & "件名:" & objMail.Subject
            objReply.Send
            ' カスタム プロパティに返信済みと設定
            userProp.Value = "Done"
            objMail.Save
        End If
    End If
End Sub

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

広告

メールを読んだ際に自動的に返信するマクロ」への1件のフィードバック

  1. いつも大変お世話になっております。
    非常に役に立つサイトで助かっております。

    このアクションを見て少し、興味が湧いたのですが、

     1.メールを開く
     2.開いたメールの件名、送信者、受信者、開いた時間等を取得
     3.特定のファイルへ書き出し(エクセルなどで良いかな?)
     4.書き出しされたファイルを開くことで、開封状況の確認できる

    と、言った機能ができるのかな?と思いました。
    Lineをはじめ、既読状況がわかる仕組みは社内では特に有効だったりしますので、
    有ったら便利な機能かなと思います。

    私の知識ではとてもできませんが、もし実装できれば面白いかもしれませんね。

コメントを残す

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

WordPress.com ロゴ

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

Google+ フォト

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

Twitter 画像

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

Facebook の写真

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

w

%s と連携中