Почему этот Outlook 2007 VBA не работает (я пытаюсь удалить флаг программно)? - PullRequest
2 голосов
/ 14 ноября 2009

У меня есть некоторый код, который добавляет флаг к электронному письму, но когда я пытаюсь использовать приведенный ниже код, чтобы удалить его, в 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

1 Ответ

3 голосов
/ 14 ноября 2009

Outlook 2007 больше не поддерживает флаги в стиле 2003 (он сопоставляет их с флагом задачи и наиболее подходящим цветом категории).

Флаг, который вы пытаетесь очистить, вероятно, является флагом задачи. В этом случае, выполняя

m.ClearTaskFlag
m.Save

сделает работу.

...