loop on all messages (except the ones in Public Folders)
Option Explicit

Private Sub RecurseOnFolder(folder As Outlook.MAPIFolder)
    Dim f As Outlook.MAPIFolder
    Dim message As Outlook.MailItem

    Debug.Print "------------------------------------------------------------"
    Debug.Print folder.Name

    For Each f In folder.Folders
        RecurseOnFolder f
    Next f

    If (folder.DefaultItemType = olMailItem) Then
        For Each message In folder.Items.Restrict("[MessageClass] = 'IPM.Note'")
            Debug.Print "<<<"
            Debug.Print "subject:" & message.Subject
            Debug.Print "sender name:" & message.SenderName
            Debug.Print "to:" & message.To
            Debug.Print "cc:" & message.CC
            Debug.Print ">>>"
        Next message
    End If
End Sub

Public Sub ProcessInbox()
    Dim ns As Outlook.NameSpace
    Dim f As Outlook.MAPIFolder

    Set ns = GetNamespace("MAPI")

    For Each f In ns.Folders
        If (f.Name <> "Public Folders") Then
            RecurseOnFolder f
        End If
    Next f

End Sub