Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi,
I have the following code that gets my contacts from outlook and lists them in a listbox on a form to select one. My problem is i have about 1000 contacts and it takes a while to load them into a userform in Excel 2003,then when i selected the contact and close the userform it then takes the same time to unload. Can anyone advise me on any changes i can make in the code to speed it up! Many thanks in advance Regards Adam Private Sub UserForm_Initialize() Dim olApp As Outlook.Application Dim oContact As Outlook.ContactItem Dim oContactFolder As Outlook.MAPIFolder Dim oContactItems As Outlook.Items Dim oNS As Outlook.Namespace Dim i As Long Dim j As Long Dim arr() With Me.ComboBox1 .ColumnCount = 3 .ColumnWidths = "175 pt;150 pt;200 pt" .TextColumn = -1 End With On Error GoTo XIT Set olApp = New Outlook.Application Set oNS = olApp.GetNamespace("MAPI") Set oContactFolder = oNS.GetDefaultFolder(olFolderContacts) Set oContactItems = oContactFolder.Items With Me For i = 1 To oContactItems.Count If oContactItems.Item(i).Class = olContact Then Set oContact = oContactItems.Item(i) If oContact.Categories = "Customer " Then j = j + 1 ReDim Preserve arr(0 To 2, 1 To j) With oContact arr(0, j) = .CompanyName arr(1, j) = .FullName arr(2, j) = .BusinessAddress End With End If End If Next i Me.ComboBox1.List() = Application.Transpose(arr) End With XIT: Set oContact = Nothing Set oContactItems = Nothing Set oContactFolder = Nothing Set oNS = Nothing Set olApp = Nothing End Sub |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Is it possible to pull the ReDim outside the For loop?
ReDim arr(0 To 2, 1 To oContactItems.Count) arr will be larger than necessary, but it might go faster. -- Gary''s Student - gsnu200727 "Adam" wrote: Hi, I have the following code that gets my contacts from outlook and lists them in a listbox on a form to select one. My problem is i have about 1000 contacts and it takes a while to load them into a userform in Excel 2003,then when i selected the contact and close the userform it then takes the same time to unload. Can anyone advise me on any changes i can make in the code to speed it up! Many thanks in advance Regards Adam Private Sub UserForm_Initialize() Dim olApp As Outlook.Application Dim oContact As Outlook.ContactItem Dim oContactFolder As Outlook.MAPIFolder Dim oContactItems As Outlook.Items Dim oNS As Outlook.Namespace Dim i As Long Dim j As Long Dim arr() With Me.ComboBox1 .ColumnCount = 3 .ColumnWidths = "175 pt;150 pt;200 pt" .TextColumn = -1 End With On Error GoTo XIT Set olApp = New Outlook.Application Set oNS = olApp.GetNamespace("MAPI") Set oContactFolder = oNS.GetDefaultFolder(olFolderContacts) Set oContactItems = oContactFolder.Items With Me For i = 1 To oContactItems.Count If oContactItems.Item(i).Class = olContact Then Set oContact = oContactItems.Item(i) If oContact.Categories = "Customer " Then j = j + 1 ReDim Preserve arr(0 To 2, 1 To j) With oContact arr(0, j) = .CompanyName arr(1, j) = .FullName arr(2, j) = .BusinessAddress End With End If End If Next i Me.ComboBox1.List() = Application.Transpose(arr) End With XIT: Set oContact = Nothing Set oContactItems = Nothing Set oContactFolder = Nothing Set oNS = Nothing Set olApp = Nothing End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Convert Excel 2003 spreadsheet into Outlook Contacts table 2003 | Excel Discussion (Misc queries) | |||
Importing Outlook contacts into Excel (2003) | Excel Discussion (Misc queries) | |||
Outlook contacts list into Excel worksheet? | Excel Programming | |||
Build a userform on excel to copy contacts from outlook 2003 | Excel Programming | |||
Use Outlook 2003 contacts in excel | Excel Programming |