ID: Q184462
The information in this article applies to:
This article provides an example of how to use the SetColumns command in the Microsoft Outlook 98 object model.
Microsoft provides programming examples for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This article assumes that you are familiar with the programming language being demonstrated and the tools used to create and debug procedures. Microsoft Support professionals can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific needs. If you have limited programming experience, you may want to contact the Microsoft fee-based consulting line at (800) 936-5200. For more information about the support options available from Microsoft, please see the following page on the World Wide Web:
http://www.microsoft.com/support/supportnet/refguide/default.asp
The SetColumns method caches Outlook fields to improve performance when
programmatically manipulating these fields. The method works with most
standard Outlook fields, but does not work with user-defined fields.
For more information on which fields cannot be used with the SetColumns method, consult the SetColumns Method topic in the Microsoft Outlook Visual Basic Help file (Vbaoutl.hlp).
NOTE: Outlook already caches the Subject and Message Class fields for all types of items, so using the SetColumns method with these fields is unnecessary. On appointments, Outlook also caches some additional standard Outlook properties, such as Start, End, Location, Duration and BusyStatus.
The following sample subroutine illustrates the use and syntax of the SetColumns method. Before using this automation example from Visual Basic or another Microsoft Office program, you should have at least ten contacts in your default contacts folder and create a reference to the Outlook 98 object library.
Sub SetColumns_Example()
Dim ol As Outlook.Application
Dim MyFolder As MAPIFolder
Dim itms As Items
Dim itm As Object
Dim dtmStart As Date, dtmEnd As Date
Dim lngElapsed As Long
Set ol = New Outlook.Application
Set MyFolder = ol.Session.GetDefaultFolder(10)
Set itms = MyFolder.Items
itms.SetColumns "[FullName],[CompanyName]"
Debug.Print "WITH SETCOLUMNS"
Debug.Print Time
Debug.Print "------------------"
dtmStart = Time
For Each itm In itms
Debug.Print itm.FullName & ", " & itm.CompanyName
Next
dtmEnd = Time
lngElapsed = DateDiff("s", dtmStart, dtmEnd)
Debug.Print "Elapsed Time: " & lngElapsed
Debug.Print
itms.ResetColumns
Debug.Print "WITHOUT SETCOLUMNS"
Debug.Print Time
Debug.Print "------------------"
dtmStart = Time
For Each itm In itms
Debug.Print itm.FullName & ", " & itm.CompanyName
Next
dtmEnd = Time
lngElapsed = DateDiff("s", dtmStart, dtmEnd)
Debug.Print "Elapsed Time: " & lngElapsed
End Sub
For more information about creating solutions with Microsoft Outlook 98, please see the following articles in the Microsoft Knowledge Base:
ARTICLE-ID: Q180826
TITLE : OL98: Resources for Custom Forms and Programming
ARTICLE-ID: Q182349
TITLE : OL98: Questions About Custom Forms and Outlook Solutions
Additional query words: OutSol OutSol98
Keywords : kbdta kbdtacode
Version : WINDOWS:98
Platform : WINDOWS
Issue type : kbhowto
Last Reviewed: May 17, 1999