Доступ к подробным сведениям о вложенных папках папок в папке Входящие в общем почтовом ящике

#excel #vba #outlook

#excel #vba #outlook

Вопрос:

Имя общего почтового ящика: trvx-prog.obs@orange.com

Мне нужно:

  • для доступа к папкам Madhvi и P_Wardah с их четырьмя вложенными папками
  • установите диапазон дат для извлечения отчета (с темой, отправителем, датой отправки, именем папки, к которой мы обращаемся)
  • автоматизация для запуска каждую неделю

Я не могу получить доступ ко второй папке и вложенным папкам

 Option Explicit
Sub EmailStatsV3()
    Dim Item As Object
    Dim varOutput() As Variant
    Dim lngcount As Long
    Dim xlApp As Excel.Application
    Dim xlSht As Excel.Worksheet
    Dim ShareInbox As Outlook.MAPIFolder
    Dim olNs As Outlook.NameSpace
    Dim olRecip As Outlook.Recipient
    Dim SubFolder As Object

    Set olNs = Application.GetNamespace("MAPI")
    Set olRecip = olNs.CreateRecipient("trvx-prog.obs@orange.com") '// Owner's Name or email address
    Set ShareInbox = olNs.GetSharedDefaultFolder(olRecip, olFolderInbox)
    Set SubFolder = ShareInbox.Folders("P_Wardah")
    
    ReDim varOutput(1 To SubFolder.Items.Count, 1 To 4)

    For Each Item In SubFolder.Items
        If TypeName(Item) = "MailItem" Then
            lngcount = lngcount   1
            varOutput(lngcount, 1) = Item.ReceivedTime 'stats on when received
            varOutput(lngcount, 2) = Item.Subject 'to split out prefix
            varOutput(lngcount, 3) = Item.Sender
            varOutput(lngcount, 4) = SubFolder.Name
        End If
    Next

    'Creates a blank workbook in excel
    Set xlApp = New Excel.Application
    Set xlSht = xlApp.Workbooks.Add.Sheets(1)

    xlSht.Range("A1").Resize(UBound(varOutput, 1), _
      UBound(varOutput, 2)).Value = varOutput
    xlApp.Visible = True
End Sub
  
  • Получены сведения только о папке P_Wardah
  • Необходимо получить доступ к папке Madhvi
  • Необходимо получить доступ к вложенным папкам P_Wardah и Madhvi, которые (обработаны, нет периметра, последующие действия, ожидание)
  • Необходимо классифицировать их для диапазона дат каждой недели

Ответ №1:

Это не полный ответ — просто помощь, которая поможет вам двигаться вперед

Вам также нужен цикл для перебора всех вложенных папок вложенной папки, например

 For Each xFldr In SubFolder.Folders
   ' Recursive Call to process xFldr
Next
  

Таким образом, ваша процедура обработки папок должна находиться в своем собственном подразделении, а затем вызывать себя (рекурсивный вызов)