Общий почтовый ящик Outlook - доступ к сведениям о нескольких папках определенных подпапок входящей почты - PullRequest
0 голосов
/ 11 апреля 2019

Я новичок в продвинутом уровне VBA.Я могу управлять базовым, но этот более продвинутый

name Имя общего почтового ящика: 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 Ответ

0 голосов
/ 11 апреля 2019

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

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

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

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

...