Outlook共享邮箱-访问收件箱特定子文件夹的几个文件夹的详细信息

时间:2019-04-11 09:57:21

标签: excel vba outlook

我是VBA进阶级别的新手。我可以管理基本的,但是这是更高级的

共享邮箱名称: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的子文件夹 (已处理,没有边界,跟进,待处理)
  • 需要从Outlook的每个日期范围对其进行分类

1 个答案:

答案 0 :(得分:0)

这不是一个完整的答案-只是一种帮助您前进的帮助

您还需要循环遍历SubFolder的所有子文件夹 例如

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

因此,您的文件夹处理例程必须位于其自身的Sub中,然后自己调用(递归调用)

相关问题