donphillipe
Member
- Outlook version
- 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 )
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!
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