Items.SetColumns Method (Outlook)

Caches certain properties for extremely fast access to those particular properties of each item in an Items collection.

Syntax

expression .SetColumns(Columns)

expression A variable that represents an Items object.

Parameters

Name

Required/Optional

Data Type

Description

Columns

Required

String

A string that contains the names of the properties to cache. The property names are delimited by commas in this string.

Remarks

The SetColumns method is useful for iterating through an Items collection. If you don't use this method, Microsoft Outlook must open each item to access the property. With the SetColumns method, Outlook only checks the properties that you have cached, and provides fast, read-only access to these properties.

After applying the SetColumns method on specific properties of the collection, you cannot read other properties of that collection; properties which are not cached are returned empty. You cannot write to any of the properties of that collection either. Alternatively, if you require read-write, fast access to a set of items, use the Table object.

SetColumns cannot be used, and will cause an error, with any property that returns an object. It cannot be used with the following properties:

AutoResolvedWinner

InternetCodePage

Body

MeetingWorkspaceURL

BodyFormat

MemberCount

Categories

ReceivedByEntryID

Children

ReceivedOnBehalfOfEntryID

Class

RecurrenceState

Companies

ReplyRecipients

DLName

ResponseState

DownloadState

Saved

EntryID

Sent

HTMLBody

Submitted

IsConflict

VotingOptions

The ConversationIndex property cannot be cached using the SetColumns method. However, this property will not result in an error like the other properties listed above.

Example

The following Visual Basic for Applications (VBA) example uses the Items collection to get the items in default Tasks folder, caches the Subject and DueDate properties and then displays the subject and due dates each in turn.

Sub SortByDueDate() 
 
 Dim myNameSpace As Outlook.NameSpace 
 
 Dim myFolder As Outlook.Folder 
 
 Dim myItem As Object 
 
 Dim myItems As Outlook.Items 
 
 
 
 Set myNameSpace = Application.GetNamespace("MAPI") 
 
 Set myFolder = myNameSpace.GetDefaultFolder(olFolderTasks) 
 
 Set myItems = myFolder.Items 
 
 myItems.SetColumns ("Subject, DueDate") 
 
 For Each myItem In myItems 
 
 MsgBox myItem.Subject & " " & myItem.DueDate 
 
 Next myItem 
 
End Sub

See Also

Concepts

Items Object

Items Object Members