设置对PST文件夹

时间:2018-02-02 08:31:28

标签: vba outlook-vba

我在Outlook中打开了几个PST文件,我需要在Excel中列出这些PST中的所有邮件。

我的代码列出了收件箱中的邮件,但无法在所有已打开的PST中搜索。

以下是我的Outlook的结构:

  • 收件箱

    • 草案
    • 已删除的项目
    • 垃圾邮件
  • 预算

  • 库存
  • 国家

我需要在其他文件夹中搜索(预算,库存,国家......)。

这是我的代码:

Sub List_mails()

Dim olapp As New Outlook.Application
Dim ns As Object, Dossier As Object
Dim OlExp As Object
Dim i As Object
Dim mybody() As String
Dim fromsender As String

Set ns = olapp.GetNamespace("MAPI")
Set Dossier = ns.GetDefaultFolder(olFolderInbox)
b = 2
For Each i In Dossier.Items
    Cells(b, 1) = i.Subject
    Cells(b, 2) = i.ReceivedTime
    Cells(b, 3) = i.SenderEmailAddress
    b = b + 1
Next i
End Sub

2 个答案:

答案 0 :(得分:1)

最简单的方法是循环遍历命名空间中的所有文件夹,如此

Windows.Management.Deployment.PackageManager

然后重复使用您用于默认文件夹的代码

答案 1 :(得分:0)

您使用.GetDefaultFolder作为方法建议 要获取默认文件夹以外的特定文件夹,请使用.Folders

Set Dossier = ns.Folders("Budget")

如果这些文件夹中有子文件夹,则可以使用以下内容:

Dim sDossier As Outlook.Folder
Dim Dossier As Outlook.Folder

Set Dossier = ns.Folders("Budget")

For Each sDossier In Dossier
    '/* put your loop here for items */
Next