Listing 3: The ProcessResponses2() Subroutine NONEXECUTABLE: To obtain the executable file, download the .zip file from the opening page of the article. Sub ProcessResponses2() Set objApp = CreateObject("Outlook.Application") Set objNS = objApp.GetNamespace("MAPI") Set colInbox = objNS.GetDefaultFolder(olFolderInbox).Items ' compare with Listing 2 strWhere = "[MessageClass] = " & AddQuote("REPORT.IPM.NOTE.DR") & _ " OR [MessageClass] = " & AddQuote("REPORT.IPM.NOTE.IPNRN") & _ BEGIN CALLOUT A " OR ([MessageClass] >= " & AddQuote("IPM.NOTE") & _ " AND [VotingResponse] <> " & AddQuote("") & ")" END CALLOUT A ' use this for testing ' Debug.Print strWhere Set colItems = colInbox.Restrict(strWhere) For Each objItem In colItems Call DoProcess(objItem) Next ' remove processed items strWhere = "[BillingInformation]=" & AddQuote("Discard") Set colDiscards = colInbox.Restrict(strWhere) Debug.Print colDiscards.Count While colDiscards.Count > 0 colDiscards.Remove 1 Wend End Sub