Lewis Morris
Lewis Morris

Reputation: 2124

VBA Outlook Mailitem - not displaying all items

The below code does not pick up all of my emails in the Inbox.

The first item in my list box is an email from yesterday and the last 4/22/2014 - although my mailbox contains A LOT more than that.

Sub CheckEmail()

On Error Resume Next

Dim outApp As Outlook.Application
Dim outNs As Outlook.Namespace
Dim outFldr As Outlook.MAPIFolder
Dim outEmail As Outlook.MailItem

Dim p As Integer
p = 0

Set outApp = CreateObject("Outlook.Application")
Set outNs = outApp.GetNamespace("MAPI")
Set outFldr = outNs.GetDefaultFolder(olFolderInbox)

Dim searcht As String

'find search string

' do search

        For Each outEmail In outFldr.Items

            With fmShowsInboxEmails.ListBox1
                .AddItem outEmail.EntryID
                .List(p, 1) = outEmail.ReceivedTime
                .List(p, 2) = outEmail.Subject
                .List(p, 3) = outEmail.SenderEmailAddress
                .List(p, 4) = outEmail.Attachments.Count
            End With

            p = p + 1

        Next outEmail

On Error GoTo 0

Set outApp = Nothing
Set outNs = Nothing
Set outFldr = Nothing
Set outEmail = Nothing

fmShowsInboxEmails.Show

End Sub

Upvotes: 2

Views: 2932

Answers (2)

Vik
Vik

Reputation: 11

I think Outlook only counts items stored locally in the offline folder - so the messages stored on the server will not be a part of outFldr.Items

Upvotes: 1

niton
niton

Reputation: 9179

"type mismatch on the Next outEmail"

Items in the Inbox need not be mailitems.

Once you have Dim outEmail As Variant, test that outEmail is a mailitem before adding to the listbox.

Upvotes: 1

Related Questions