Compartilhar via


Usar o objeto Table para enumerar itens filtrados com desempenho em uma pasta

The code sample in this topic uses the Table object to enumerate a filtered set of items in the Inbox that were last modified after May 1, 2005. For each of these items, the code sample prints these values: the subject, the time that the item was last modified, and whether the item is hidden. The procedure is as follows:

  1. The sample defines a filter based on the value of the LastModificationTime property of mail items.

  2. It applies the filter to Folder.GetTable and obtains a Table of a subset of mail items in the Inbox that satisfies the filter.

Nota A tabela retornada contém um conjunto padrão de propriedades para cada um dos itens filtrados: EntryID, Subject, CreationTime, LastModificationTime e MessageClass. 3. Em seguida, ele usa Columns.RemoveAll e Columns.Add para atualizar a Tabela com as propriedades realmente desejadas: Subject, LastModificationTime e o atributo oculto (PidTagAttributeHidden). Ele especifica propriedades com seus nomes internos explícitos se existirem (por exemplo, Subject, LastModificationTime) e somente quando não o fizerem, ele faz referência às propriedades por seus namespaces (por exemplo, o atributo oculto de um item de email).

Nota Os objetos Table retornados de Folder.GetTable na Etapa 2 e Columns.Add na Etapa 3 contêm valores de propriedade diferentes, mas para o mesmo conjunto de itens filtrados na caixa de entrada. 4. Por fim, ele usa Table.GetNextRow para enumerar os itens filtrados (até Table.EndOfTable se tornar true), exibindo os valores das três propriedades desejadas para cada item.

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

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.