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


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


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

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

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中