Redemption? Need rapid pull of Outlook Contacts, email + notes for VBA

Status
Not open for further replies.

donphillipe

Member
Outlook version
Outlook 2007
Email Account
IMAP
Is there an official forum for Outlook Redemption? If so, I can't find it. I have a question that deals with the use of it and would like to post in the proper place.
I am looping through all my contacts in a VBA macro and this takes about 2-3 seconds per contact so I am looking for a faster way to do it. I am an intermediate level VBA coder but there is major divide in my understanding of some of the more "exotic" redemption calls such as the one included below (assumed in the general area of what I want to do). I did install Outlook Spy and I see the new options for IAddrBook, IMsgStore, etc and clicked on them but I don't have a clue what all the info means. From all I can gather there is a MAPItable call that will pull all or part of my address book out and rapidly. Right now it is taking around 3 minutes to extract the contents of 3 address fields into an array.

I am not sure what all can be pulled using this example below nor do I know what to make of it. I only want Name, Email address and Notes to load into an array and hopefully doable in a few seconds instead of 3 minutes. THANKS! (continued ....)

(Lifted as-is from http://www.dimastr.com/redemption/mapitable.htm )

Code:
dim Columns(0)
     dim Row
     dim Rows
     dim sItem
     dim oItem
            [I]'first we need to find out the property tag for FileUnder
     'it is a named property, hence we need to use GetIDsFromNames
     'see [URL]http://www.cdolive.com/cdo10.htm[/URL]       and use [URL="http://www.dimastr.com/outspy/"]OutlookSpy[/URL]
     'to figure out most GUIDs and ids
            [/I]if MAPIFolder.Items.Count > 0 Then  [I]     'only makes sense if there       are items anyway
            [/I]  set oItem = MAPIFolder.Items(1)  [I]      'take any item, we only need it       for GetIDsFromNames
            [/I]         set sItem = CreateObject("Redemption.SafeContactItem")
       sItem.Item = oItem
       PT_STRING8 = &H1E
       PR_FILE_UNDER = sItem.GetIDsFromNames("{00062004-0000-0000-C000-000000000046}",       &H8005) or PT_STRING8
            [I]  'here's the beef
            [/I]  set Table = CreateObject("Redemption.MAPITable")
       Table.Item = MAPIFolder.Items
       Columns(0) = PR_FILE_UNDER
       Table.Columns = Columns
       Table.GoToFirst
       Rows = Table.GetRows(Table.RowCount)
       for i = LBound(Rows) to UBound(Rows)
         Row = Rows(i)
         Debug.Print(Row(0))
       next
     End If
Any idea how to quickly fill a VBA array with Name, Email Address and Notes field of each of the contact entries on the folder from the local machine? Also is there any online reference that uses these code snippets in a fully functioning environment? Thanks!
 
Status
Not open for further replies.
Top