Verwenden des Table-Objekts zum ausführenden Aufzählen gefilterter Elemente in einem Ordner
Im Codebeispiel in diesem Thema wird das Table-Objekt verwendet, um eine gefilterte Gruppe von Elementen im Posteingang aufzulisten, die nach dem 1. Mai 2005 zuletzt geändert wurden. Für jedes dieser Elemente gibt das Codebeispiel diese Werte aus: den Betreff, den Zeitpunkt, zu dem das Element zuletzt geändert wurde und ob das Element ausgeblendet ist. Das Verfahren sieht wie folgt aus:
Im Beispiel wird ein Filter definiert, der auf dem Wert der LastModificationTime -Eigenschaft der E-Mail-Elemente basiert.
Der Filter wird auf Folder.GetTable angewendet, und es wird ein Table -Objekt einer Teilmenge der E-Mail-Elemente im Posteingang abgerufen, die dem Filter entsprechen.
Hinweis Die zurückgegebene Tabelle enthält einen Standardsatz von Eigenschaften für jedes gefilterte Element: EntryID, Subject, CreationTime, LastModificationTime und MessageClass. 3. Anschließend werden Columns.RemoveAll und Columns.Add verwendet, um die Tabelle mit den tatsächlich gewünschten Eigenschaften zu aktualisieren: Subject, LastModificationTime und dem ausgeblendeten Attribut (PidTagAttributeHidden). Es gibt Eigenschaften mit ihren expliziten integrierten Namen an, wenn sie vorhanden sind (z. B . Subject, LastModificationTime), und nur wenn dies nicht der Fall ist, verweist es auf die Eigenschaften nach ihren Namespaces (z. B. das ausgeblendete Attribut eines E-Mail-Elements).
Hinweis Die table-Objekte , die von Folder.GetTable in Schritt 2 zurückgegeben wurden, und Columns.Add in Schritt 3 enthalten unterschiedliche Eigenschaftswerte, aber für denselben Satz gefilterter Elemente im Posteingang. 4. Schließlich wird Table.GetNextRow verwendet, um die gefilterten Elemente aufzulisten (bis Table.EndOfTable true ist), und zeigt die Werte der drei gewünschten Eigenschaften für jedes Element an.
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
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.