Consulting

Results 1 to 2 of 2

Thread: ActiveExplorer.SelectAllItems doesn't fill ActiveExplorer.Selection

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    VBAX Newbie
    Joined
    Mar 2022
    Posts
    4
    Location

    ActiveExplorer.SelectAllItems doesn't fill ActiveExplorer.Selection

    I have a problem with the following code, which should process all mails in the current folder and all subfolders, using ActiveExplorer.SelectAllItems and then browsing through ActiveExplorer.Selection.
    The weird thing is: when I debug through the code, everything is fine. When I let it run free, ActiveExplorer.Selection is empty (.Count = 0).
    Has anybody got a clue?
    (For reasons difficult to explain (I will try, if anybody is interested), I must use the "for each item in selection" construct.)

    Dim MySelection
    Dim NextFolder As folder
    Dim pmoCurItem As Object
    
    Dim arFoldersAndSubfolders(maxFolderIndex) As typeFolderLevel
    Dim bFolderFound As Boolean
    Dim index As Integer, iFolderIndex As Integer
    
       index = 0
       LoadArrayOfFoldersAndSubfolders Outlook.ActiveExplorer.CurrentFolder, 1, arFoldersAndSubfolders, index
       
       iFolderIndex = 0
       bFolderFound = True
       Outlook.ActiveExplorer.SelectAllItems
       Set MySelection = Outlook.ActiveExplorer.Selection
       Debug.Print "MySelection.Count(A): " & MySelection.Count       'correct: 2
       Do While bFolderFound
          For Each pmoCurItem In MySelection
             If pmoCurItem.Class = olMail Then
                   Debug.Print Timer & " | " & pmoCurItem.ReceivedTime & "  " & pmoCurItem.SentOnBehalfOfName & "  " & pmoCurItem.Subject
                   '... processing this mail-item ...
             Else
                   Debug.Print "skipping: " & pmoCurItem.Class & " " & pmoCurItem.MessageClass
             End If
          Next pmoCurItem
                     
          Set NextFolder = arFoldersAndSubfolders(iFolderIndex).folder
    
          If NextFolder Is Nothing Then
             bFolderFound = False
             Debug.Print "end of folders"
          Else
             Set Outlook.ActiveExplorer.CurrentFolder = NextFolder
             Outlook.ActiveExplorer.SelectAllItems
             Set MySelection = Outlook.ActiveExplorer.Selection
             Debug.Print "MySelection.Count(: " & iFolderIndex & "): " & MySelection.Count     'wrong: 0
          End If
          iFolderIndex = iFolderIndex + 1
       Loop
    The results look like this:

    "free run":
    MySelection.Count(A): 2
    06.12.2021 12:34:40 Szech, Burkhard (EXT) Verschlüsselte Mail mit xlsx-Anhang
    14.09.2021 08:48:32 Szech, Burkhard (EXT) Ver- und Entschlüsselungs-Test - intern
    MySelection.Count(0): 0
    MySelection.Count(1): 0
    MySelection.Count(2): 0
    end of folders

    debugging through the same code:
    MySelection.Count(A): 2
    06.12.2021 12:34:40 Szech, Burkhard (EXT) Verschlüsselte Mail mit xlsx-Anhang
    14.09.2021 08:48:32 Szech, Burkhard (EXT) Ver- und Entschlüsselungs-Test - intern
    MySelection.Count(0): 6
    skipping: 53 IPM.Schedule.Meeting.Request
    skipping: 53 IPM.Schedule.Meeting.Request
    06.12.2021 12:29:30 Szech, Burkhard (EXT) Verschlüsselte Mail mit png-Anhang
    14.09.2021 08:50:27 Szech, Burkhard (EXT) WG: Ver- und Entschlüsselungs-Test
    14.09.2021 08:40:54 Szech, Burkhard (EXT) Ver- und Entschlüsselungs-Test
    14.09.2021 08:40:00 Szech, Burkhard (EXT) Ver- und Entschlüsselungs-Test
    MySelection.Count(1): 0
    MySelection.Count(2): 2
    14.09.2021 08:50:00 Szech, Burkhard (EXT) WG: Ver- und Entschlüsselungs-Test
    14.09.2021 08:47:00 Szech, Burkhard (EXT) Ver- und Entschlüsselungs-Test - intern
    end of folders

  2. #2
    Burkhard

    I had to remove some parts of your original code. "typeFolderLevel" appears to be a user defined type and "LoadArrayOfFoldersAndSubfolders" appears to be a sub defined some place else.

    But with those lines removed the remaining code seems to work fine. Both in the debugger and when run "free". Running it on my Inbox, I get the same "MySelection.Count(A): XX" output in both cases.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •