2017-08-04 5 views
1

J'ai besoin de créer des filtres personnalisés dans Outlook pour éviter d'avoir à ajuster manuellement le réglage du filtre à chaque fois, de préférence avec VBA.Filtrer les tâches Outlook 2010 en utilisant VBA

Voici ma tentative. J'ai inséré la ligne de boîte de message pour vérifier que les articles corrects sont restreints. Lors de l'exécution de la macro, un certain nombre de boîtes de message s'affichent avec "1" pour m'indiquer que cela fonctionne comme prévu (une boîte de message apparaît pour chaque élément 'En cours'). Cependant, les tâches dans le dossier des tâches ne sont pas filtrées, toutes les tâches sont affichées indépendamment des critères.

Que manque-t-il à mon code? Ou suis-je complètement aboyer le mauvais arbre.

Merci, et excuses d'avance pour la question simpliste.

+0

Plus de recherche Google a révélé qu'il est possible de configurer plusieurs "vues" qui vous permettent de filtrer selon divers critères –

Répondre

0

Une fois que vous avez manuellement configuré différentes vues, vous pouvez y accéder de cette façon.

où la vue est nommé par exemple "In Progress"

Sub TaskView_InProgress() 
    ' No error if the view does not exist 
    ' No error if not currently in Tasks folder 
    ActiveExplorer.CurrentView = "In Progress" 
End Sub 
0

Cela montre comment accéder aux tâches en cours. Bien que beaucoup moins utile qu'une vue si vous avez beaucoup de tâches.

Private Sub task_Filter() 

' Folders may contain any type of item 
Dim myItem As Object 

Dim myItems As items 
Dim resItems As items 

Dim myTaskFolder As Folder 

Dim sFilter As String 
Dim msgPrompt As String 

Set myTaskFolder = Session.GetDefaultFolder(olFolderTasks) 

Set myItems = myTaskFolder.items 

sFilter = "[Status]='In Progress'" 
Set resItems = myItems.Restrict(sFilter) 

For Each myItem In resItems 
    If myItem.Class = OlTask Then 
     myItem.Display 
    End If 
Next 

End Sub