2009-11-14 22 views
1

J'ai un code qui ajoute un drapeau à un e-mail, mais lorsque je tente le code ci-dessous pour l'enlever, il ne semble pas avoir d'effet dans Outlook 2007.Pourquoi ce VBA Outlook 2007 ne fonctionne-t-il pas (j'essaie de supprimer un indicateur par programme)?

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 

Répondre

2

Outlook 2007 ne prend pas en charge Les drapeaux de style 2003 (ils les associent à un drapeau de tâche et à la couleur de catégorie la plus appropriée).

Le drapeau que vous essayez d'effacer est probablement un drapeau de tâche. Dans ce cas, effectuer un

m.ClearTaskFlag 
m.Save 

fera l'affaire.

+0

fonctionne comme un charme – leora