Hej hej,  Hej, du får arbeta med att i din loop kolla om objektet är ett mail eller en katalog. Om det är en katalog så behöver du peka dig i i den katalogen och loopa igenom alla poster , osv. Detta brukar kallas rekursiv loop. Denna kod kanske kan hjälpa dig. Hej Pelle,  En fundering bara.  Japp, för man använder inte namnen utan bara "gå till nästa mapp om den finns". Hm säger type mismatch. Får det fortfarande inte att funka.Jobba med subfolders i Outlook 2013
    
    
Jag har gjort ett program i Outlook VBA som skall räkna ut responsetiden för emails, loopar igenom dessa o skriver ut dem sen i Excel.
Det funkar om jag inte har några underkataloger. Men jag vill att alla mail i subkataloger skall skrivas ut också oavsett hur många subkataloger.
Typ som: 
Inbox
   Folder1
       Folder1B
           Folder1C
   Folder2
...osv
Så det kan vara hur många subfoldrar som helst i Folder1...ja ni fattar.
Den kod som jag kör på nu ser ut så här.
'Start Outlook
Set myOlApp = Outlook.Application
Set myNamespace = myOlApp.GetNamespace("mapi")
Set myfolder = myOlApp.ActiveExplorer.CurrentFolder
Set myfolders = myfolder.Folders
'Loop through all email items in Outlook
'Alltså det är här som jag vill att den skall gå igenom alla underkataloger enligt ovan beskrivning.
'Jag antar att man måste ha en Foreach myfolder in myfolders
For i = 1 To myfolder.Items.Count
  Set myitem = myfolder.Items(i)
 
'Move data from Outlook to Excel
  xlobj.Range("a" & i + 1).Value = Format(myitem.SentOn, "h:mm:ss")
  xlobj.Range("b" & i + 1).Value = Format(myitem.ReceivedTime, "h:mm:ss")
  xlobj.Range("c" & i + 1).Value = Format(xlobj.Range("b" & i + 1) - xlobj.Range("a" & i + 1), "h:mm:ss")
 
Next
Anyone?
Mvh
NickSv: Jobba med subfolders i Outlook 2013
    
    
Dim oFolder, cMessages, oMailItem
 Set oFolder = fGetOLFolder("Mailbox - John Doe\Inbox\MySubFolder\My Sub SubFolder")
 Set cMessages = oFolder.Items
      For Each oMailItem In cMessages 
           sRecips = ""
                For Each oRecipient In oMailItem.Recipients
                          If Trim(sRecips) = "" Then 
                               sRecips = "To: " & oRecipient
                          Else
                               sRecips = sRecips & VbCrLf & "To: " & oRecipient
                          End If 
                Next
           sText = sRecips 
           sText = sText & VbCrLf & "From: " & oMailItem.SenderEmailAddress
           sText = sText & VbCrLf & "Subject: " & oMailItem.Subject
           sText = sText & VbCrLf & "Body: " & oMailItem.Body 
           WScript.Echo "-----------------" & VbCrLf & sText
      Next 
 
 Function fGetOLFolder(sFolderPath)
 'This function returns a folder object based on the sFolderPath variable.
 'sFolderPath is recognized as:
 'Public Folder Example - 
 '   "Public Folders\All Public Folders\MySubFolder\My Sub SubFolder"
 ' Or
 'Exchange Mailbox Example - 
 '   "Mailbox - John Doe\Inbox\MySubFolder\My Sub SubFolder"
 ' Or
 'Personal Folders Example - 
 '   "Personal Folders\Inbox\MySubFolder\My Sub SubFolder"
 Dim aFolders, oFolder, i, oNameSpace
 On Error Resume Next
 aFolders = Split(Replace(sFolderPath, "/", "\"), "\")
 Set oApplication = WScript.CreateObject ("Outlook.Application") 
 Set oNameSpace = oApplication.GetNamespace("MAPI")
 Set oFolder = oNameSpace.Folders(aFolders(0))
    For i = 1 To UBound(aFolders)
        Set oFolder = oFolder.Folders(aFolders(i))
            If Err <> 0 Then Exit Function
    Next
 Set fGetOLFolder = oFolder
 End Function
Ett annat sätt att hämta ideer från är samma princip, fast trädstruktur på din disk.
http://msdn.microsoft.com/en-us/library/bb513869.aspx
Lycka till och hoppas det hjälper dig.
    Sv:Jobba med subfolders i Outlook 2013
    
    
Tack så jätte mycket för koden. 
Skall testa den...ser bra ut! :-)
Från en f.d. MSFT:are.
/NickSv: Jobba med subfolders i Outlook 2013
    
    
Kommer denna kod att loop:a igenom alla subfoldrar? Alltså, jag vet inte namnen på dem bara att de finns där?
O det kan vara 100+ subfoldrar etc.Sv:Jobba med subfolders i Outlook 2013
    
    
Prova och se, det borde fungera. Lägg bara in dina förutsättningar först man namn och liknande..Sv: Jobba med subfolders i Outlook 2013
    
    
Så här har jag ändrat till: 
Set oFolder = fGetOLFolder("mailbox - firstname.lastname@example.com\Inbox\Folder1\Folder1B\Folder2")
Eller skall det bara vara 
Set oFolder = fGetOLFolder("\Inbox\Folder1\Folder1B\Folder2")
?Sv:Jobba med subfolders i Outlook 2013
    
    
Anyone?
Som sagt vet inte vad dom underliggande mapparna heter.