Outlook 2007 で、特定の件名の最新のメッセージのみを保存するにはどうすればよいですか?

Outlook 2007 で、特定の件名の最新のメッセージのみを保存するにはどうすればよいですか?

更新情報をメールで送る自動システムがあります。これは問題ありませんし、私にとっては有益な情報です。最新の更新情報だけを表示し、残りはゴミ箱に捨てて欲しいです。つまり、次のリストが与えられた場合です。

ここに画像の説明を入力してください

34022 のアップデートの選択したバージョンだけをフォルダーに残しておきたいのですが、ルールを調べてみたのですが、適切なものが見つかりません。

不要なものを(自動的に)削除する方法はありますか?

答え1

いくつかの VBA を使用します。削除が関係する場合は、常に徹底的にテストすることをお勧めします。

Private Sub Application_NewMail()
' In ThisOutlookSession module

' see Create Outlook Rules Programmatically
' http://msdn.microsoft.com/en-us/library/aa163981(v=office.10).aspx

Dim olApp As Outlook.Application
Dim olNs As Outlook.NameSpace
Dim olFld As Outlook.MAPIFolder
Dim objMail As Object

Set olApp = Outlook.Application
Set olNs = olApp.GetNamespace("MAPI")
Set olFld = olNs.GetDefaultFolder(olFolderInbox)

olFld.items.sort "Received", False
'Set objMail = olFld.items.GetFirst ' In Outlook 2003
Set objMail = olFld.items.GetLast ' In Outlook 2010

If TypeOf objMail Is MailItem Then

    If objMail.SenderEmailAddress = "Found in DetermineSenderEmailAddress" And _
        InStr(1, objMail.Subject, "Ticket:") Then

            DeleteOldStatus objMail

    End If

End If

Set objMail = Nothing
Set olFld = Nothing
Set olNs = Nothing
Set olApp = Nothing

End Sub

Sub DeleteOldStatus(objMail As MailItem)

Dim olFld As folder
Dim olNs As NameSpace
Dim olderMail As MailItem

Dim iDel As Long

Set olNs = Application.GetNamespace("MAPI")
Set olFld = olNs.GetDefaultFolder(olFolderInbox)

For iDel = olFld.items.Count To 1 Step -1

    Set olderMail = olFld.items(iDel)

    If olderMail.Subject = objMail.Subject Then

        If olderMail.ReceivedTime < objMail.ReceivedTime Then

            Debug.Print olderMail.Subject & " received  " & olderMail.ReceivedTime & " should be deleted."
            'olderMail.Delete ' Remove leading apostrophe to uncomment when ready

        End If

    End If

Next

Debug.Print "Done - " & objMail.Subject

End Sub


Sub DetermineSenderEmailAddress()

' open up an email then run

Dim currItem As MailItem
Set currItem = ActiveInspector.currentItem

' Copy the text from the immediate pane.
Debug.Print currItem.SenderEmailAddress

End Sub

エディターとボタンのヘルプ -http://www.slipstick.com/developer/how-to-use-outlooks-vba-editor/

マクロのセキュリティは中程度に設定する必要があります。

ボタンヘルプ -http://www.howto-outlook.com/howto/macrobutton.htm

編集: InStr行を修正しました

関連情報