Partager via


Utiliser l’objet Table pour énumérer efficacement les éléments filtrés dans un dossier

L’exemple de code de cette rubrique utilise l’objet Table pour énumérer un ensemble filtré d’éléments dans la boîte de réception qui ont été modifiés pour la dernière fois après le 1er mai 2005. Pour chacun de ces éléments, l’exemple de code imprime ces valeurs : l’objet, l’heure de la dernière modification de l’élément et si l’élément est masqué. La procédure comprend les étapes suivantes :

  1. L’exemple définit un filtre basé sur la valeur de la propriété LastModificationTime des éléments de courrier.

  2. Il applique le filtre à Folder.GetTable et obtient une table d’un sous-ensemble d’éléments de courrier dans la boîte de réception qui satisfait au filtre.

Note La table retournée contient un ensemble de propriétés par défaut pour chacun des éléments filtrés : EntryID, Subject, CreationTime, LastModificationTime et MessageClass. 3. Il utilise ensuite Columns.RemoveAll et Columns.Add pour mettre à jour la table avec les propriétés réellement souhaitées : Subject, LastModificationTime et l’attribut masqué (PidTagAttributeHidden). Il spécifie les propriétés avec leurs noms intégrés explicites s’ils existent (par exemple, Subject, LastModificationTime), et uniquement quand elles ne le font pas, il fait référence aux propriétés par leurs espaces de noms (par exemple, l’attribut masqué d’un élément de courrier).

Note Les objets Table retournés par Folder.GetTable à l’étape 2 et Columns.Add à l’étape 3 contiennent des valeurs de propriété différentes, mais pour le même ensemble d’éléments filtrés dans la boîte de réception. 4. Enfin, il utilise Table.GetNextRow pour énumérer les éléments filtrés (jusqu’à ce que Table.EndOfTable devienne true), affichant les valeurs des trois propriétés souhaitées pour chaque élément.

Sub DemoTable() 
 'Declarations 
 Dim Filter As String 
 Dim oRow As Outlook.Row 
 Dim oTable As Outlook.Table 
 Dim oFolder As Outlook.Folder 
 
 'Get a Folder object for the Inbox 
 Set oFolder = Application.Session.GetDefaultFolder(olFolderInbox) 
 
 'Define Filter to obtain items last modified after May 1, 2005 
 Filter = "[LastModificationTime] > '5/1/2005'" 
 'Restrict with Filter 
 Set oTable = oFolder.GetTable(Filter) 
 
 'Remove all columns in the default column set 
 oTable.Columns.RemoveAll 
 'Specify desired properties 
 With oTable.Columns 
 .Add ("Subject") 
 .Add ("LastModificationTime") 
 'PidTagAttributeHidden referenced by the MAPI proptag namespace 
 .Add ("https://schemas.microsoft.com/mapi/proptag/0x10F4000B") 
 End With 
 
 'Enumerate the table using test for EndOfTable 
 Do Until (oTable.EndOfTable) 
 Set oRow = oTable.GetNextRow() 
 Debug.Print (oRow("Subject")) 
 Debug.Print (oRow("LastModificationTime")) 
 Debug.Print (oRow("https://schemas.microsoft.com/mapi/proptag/0x10F4000B")) 
 Loop 
End Sub

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.