VBA - working with Outlook videos | Excel VBA Part 29.9 - Finding Outlook Emails using Filters

Posted by Andrew Gould on 29 April 2019

In this video you'll learn how to use the Find method and filters in Outlook to search for an email by sender name and subject. You'll learn how to retrieve a list of items from the Outlook inbox, how to apply the Find method to the Items collection and how to construct a filter string to get a reference to a single item in the collection. You'll also learn of a potential issue with the subject of replies and forwarded messages as well as how to deal with the problem. Finally, you'll learn how to copy the body of an email into an embedded Word document in an Excel worksheet.

See our full range of VBA training resources, or test your knowledge of VBA with one of our VBA skills assessment tests.

This video has the following accompanying files:

File name Type Description
FindingOutlook Emails using Filters.xlsm Excel workbook with macros

Click to download a zipped copy of the above files.

There are no exercises for this video.

Making a  video bigger

You can increase the size of your video to make it fill the screen like this:

View full screen

Play your video (the icons shown won't appear until you do), then click on the full screen icon which appears as shown at its bottom right-hand corner.


When you've finished viewing a video in full screen mode, just press the Esc key to return to normal view.

Improving the quality of a video

To improve the quality of a video, first click on the Settings icon:

Settings icon

Make sure you're playing your video so that the icons shown appear, then click on this gear icon at the bottom right-hand corner.


Choose to change the video quality:

Video quality

Click on Quality as shown to bring up the submenu.


The higher the number you choose, the better will be your video quality (but the slower the connection speed):

Connection speed

Don't choose the HD option unless you have a fast enough connection speed to support it!


Is your Wise Owl speaking too slowly (or too quickly)?  You can also use the Settings menu above to change your playback speed.

This page has 1 thread Add post
30 Apr 19 at 07:03

You are awesome as always. Better than most of the Excel MVP's. I appreciate your effort for these valuable videos and i have a question for you which i can't find a decent solution at internet. First one, how can we change the from email address when we send an email if we have more than one account in Outlook. Second one is, how we can define folder(fol as outlook.folder) variable in late binding. Thanks in advance.

30 Apr 19 at 07:22

Thanks, glad you enjoyed the video!

You can use the SendUsingAccount property of a MailItem object to send from a separate account in the same Outlook profile, you can see the documentation for that property here.

For late-binding, you can use the generic Object type when you declare variables whose types are defined in the Outlook object library.  Here's some basic code to loop over the Inbox items using late-binding:

Sub LateBindEg()

    Dim ol As Object
    Dim ns As Object
    Dim fol As Object
    Dim i As Object
    Set ol = CreateObject(Class:="Outlook.Application")
    Set ns = ol.GetNamespace("MAPI")
    Set fol = ns.GetDefaultFolder(6)    'olFolderInbox = 6
    For Each i In fol.Items
        Debug.Print i.Subject
    Next i
End Sub

I hope that helps!