Analogous Outlook code to read info into an array (or collection or whatever)

Post number 2 has been selected as the best answer.

Dr. Demento

Member
OS Version(s)
  1. Windows
Outlook version
Outlook 365 64 bit
Email Account
Office 365 Exchange
Operating system::    Win 11
Outlook version:     365
Email type or host:    365 Exchange

In Excel, you can copy a range into an array (Range.value = array), thereby removing the time/memory needed to constantly access the spreadsheet. Is there an analogous method to read email data (send, subject, to, body, attachments, etc) into a similar digital construct en masse as an Excel array so that each individual email doesn't need to be accessed.

It's probably important to note that most of these emails are digitally encrypted; if this isn't possible for encrypted email, is there a method for unencrypted emails??

Thanks much.
 
You can read the values into an array - but would need to touch each message to get the field(s) you need. Basically, get the values from each message field into a string - strSubject = olmail.subject & "," & strSubject. Then convert the finished string in to an array.
 
One possible approach would be to construct a Search Folder that includes the Items you're interested in. But Search Folders come with a few limitations on where they can pull Items from, so this may not work for you.

Once you have the Search Folder built, you can access the Items in the folder using the standard Outlook Items collection syntax. You can walk it with "For Each" or get an individual Item with "Items(n)".

e.g. With a Search Folder as the Active Explorer:

Code:
    Dim oFolder As Outlook.Folder
    Set oFolder = ActiveExplorer.CurrentFolder
    
    Dim Item As Object
    For Each Item In oFolder.Items
        Debug.Print Item.Subject
    Next Item
    
    Dim Items As Outlook.Items
    Set Items = oFolder.Items
    Dim Inx As Long
    For Inx = 1 To Items.Count
        Debug.Print Items(Inx).Subject
    Next Inx
 
If your selection criteria are dynamic then you could use a DASL Filter and Application.AdvancedSearch instead of a Search Folder to get a Results collection. (I find that DASL Filters can get pretty complex really quick and the syntax is abominable). A similar approach to get a subset of Items from a Folder (also using a DASL Filter) is to build a Table Object. The advantage here is that the Table Object looks to you like a two dimension array of Rows (Items) and Columns (Fields from the Item).
 
To build some DASL queries you can use the Outlook View Filter dialog on any View to build your query using the Filter tabs and then copy the DASL from the "SQL" tab. See these Slipstick articles:

Create views using SQL/DAVX filters
Using Query Builder

e.g. Using Query Builder
1733581287180.png
1733581304210.png


e.g. Using the Messages, More Choices, and Advanced tabs
1733581537193.png
1733581558721.png


1733581612545.png
1733581632908.png


1733581504485.png
 
And then there is Items.Restrict to dynamically filter a Folder's Items collection. (Sorry for all the separate post. Microsoft has so many ways to skin this cat, that every time I finish one post I remember another one). There is an overview of the different ways you can filter a single folder here. But for queries that span multiple folders you have to look at other methods.
 
On rereading your original post (and looking up how an Excel Range works) I think you want a Table.

"You can regard each row of a Table as an item in the folder, each column as a property of the item, and the Table as an in-memory lightweight rowset that allows fast enumeration and filtering of items in the folder. If you don't specify any filter, you'll obtain all the items in the folder."
 
Similar threads
Thread starter Title Forum Replies Date
P newly installed Office 365 includes OLD Outlook Using Outlook 6
R Outlook ribbon menu default? Using Outlook 7
H Spam email in Gmail not visible in Outlook Using Outlook 3
J How to transfer Win 10 Outlook to new Windows 11 pc? Using Outlook 9
J Renegade spam URL line displayed in old local Outlook 365 email title Using Outlook 3
G Reduce whitespace in Outlook desktop Contact Cards display Using Outlook 3
C Outlook classic via 365 Using Outlook 2
S Repair Outlook Using Outlook 8
V Outlook Form ListBox is not editable Outlook VBA and Custom Forms 2
F Outlook's contacts Using Outlook 1
D Outlook 2003 stopped dead Using Outlook 2
G Cannot receive emails from gmail account in Outlook 365 Using Outlook 1
E "Cannot display the folder. MS Outlook cannot access the specified file location" Using Outlook 8
P Outlook 2016 Working Offline Using Outlook 2
Rupert Dragwater Cannot reestablish gmail (email address) account in Outlook 365 Using Outlook 11
O Outlook 365 synchronisieren Exchange Server Administration 1
kburrows Outlook Classic - JPG files are corrupted when opened or saved Using Outlook 3
F Sync Outlook Calendar Using Outlook 0
G Change default font size in sticky notes - Outlook Desktop 2021 Using Outlook 2
C VBA in "New Outlook?" Using Outlook 0
D New Outlook with Business Basic Plans Using Outlook 0
D Outlook 2021 not working with Outlook 2003 installed Using Outlook 5
D Outlook 2003 stopped working - get they dialog box asking for username & Password Using Outlook 2
T Outlook 2021 hangs in close on taskbar occasionally Using Outlook 1
M Duplicate removal feature in Outlook 2021 is faulty Using Outlook 2
D.Moore Outlook COM addins source folder Using Outlook 12
P Removing Outlook 365 Account from Send/Receive Using Outlook 3
kburrows Outlook Automatically Merging Contacts Using Outlook 2
A Outlook 2016 Outlook 2016 vs. New Outlook Using Outlook 4
D Outlook Desktop App Email Software Using Outlook 0
efire9207 VBA Outlook Contacts Outlook VBA and Custom Forms 6
M Outlook not logging in to server Using Outlook 0
J Outlook macro to run before email is being send Outlook VBA and Custom Forms 3
R Outlook 2021 change view Using Outlook 2
K Outlook font corrupted in some point sizes, resets on close/open Using Outlook 2
J Is the Windows Outlook Tasks module really going to be gone? Using Outlook 6
F Outlook 2010 and Hotmail Using Outlook 1
A Outlook 2021 needs 'enter' for people search Using Outlook 2
HarvMan Outlook 365 Inbox Font Using Outlook 8
Retired Geek Outlook on MAC delete duplicate Sent emails Using Outlook 0
S New Outlook - IMAP ISSUES and support for addins? Using Outlook 1
C outlook.com fonts Using Outlook 2
R Outlook with several IMAP accounts generating folders with 1111 suffix Using Outlook 0
D Send email from Outlook Alias using Mac? Using Outlook 0
G Reply a selected message and remove blank space before signature Outlook 365 version 2406 64BIT Outlook VBA and Custom Forms 2
G Reply a selected message and remove blank space before signature Outlook 365 version 2406 64BIT Outlook VBA and Custom Forms 0
kburrows "New" Outlook Desktop App Mailbox Size Using Outlook 4
N Best way to sync calendar and contacts between Outlook 365 and Outlook on iPhone Using Outlook 4
H Macro to Delete Duplicate items in Outlook calendar where title is the same and date is the same Outlook VBA and Custom Forms 0
Y The New Outlook - Q's & Thoughts Using Outlook 28

Similar threads

Back
Top