views:

247

answers:

1

I have some code that adds a flag to an email but when I try this code below to remove it, it doesn't seem to have any effect in Outlook 2007.

    Public Sub Clear()
        Dim objOutlook As Outlook.Application
        Dim objInspector As Outlook.Inspector

        Dim strDateTime As String

        ' Instantiate an Outlook Application object.
        Set objOutlook = CreateObject("Outlook.Application")

        ' The ActiveInspector is the currently open item.
        Set objExplorer = objOutlook.ActiveExplorer

        ' Check and see if anything is open.
        If Not objExplorer Is Nothing Then
            ' Get the current item.
            Dim arySelection As Object
            Set arySelection = objExplorer.Selection

            For x = 1 To arySelection.Count
                Dim m As MailItem
                Set m = arySelection.Item(x)
                m.Categories = ""
                m.FlagStatus = olNoFlag
                m.FlagIcon = 0
                m.Save
            Next x

        Else
            ' Show error message with only the OK button.
            MsgBox "No explorer is open", vbOKOnly
        End If

    End Sub
+2  A: 

Outlook 2007 doesn't support 2003 - style flags anymore (it maps them onto a task flag and the most appropriate category color).

The flag you are trying to clear is probably a task flag. In that that case, performing a

m.ClearTaskFlag
m.Save

will do the job.

Paul-Jan
works like a charm
ooo