Excel vba:循环浏览Outlook电子邮件中的所有子文件夹,以查找具有特定主题的电子邮件
我已经在Excel VBA中编写了以下代码,如果它位于Outlook中的默认收件箱文件夹中,该代码将打开包含给定主题的电子邮件。
但是,我想在所有收件箱子文件夹中search此电子邮件。
由于代码将被多个用户使用,我不知道他们的Outlook收件箱子文件夹的数量和名称。 关于如何在所有子文件夹中search此电子邮件的任何想法?
Sub GetEmail() Dim OutApp as Object Dim Namespace as Object Dim Folder as Object Dim myMail as Object Set OutApp = CreateObject("Outlook.Application") Set Namespace = OutApp.GetNamespace ("MAPI") Set Folder = Namespace.GetDefaultFolder(6) Set myMail = Folder.Items.Find ("[Subject] = ""Test""") myMail.Display End Sub
下面的代码在Outlook中的所有文件夹中循环到收件箱下面的级别。 您可以通过指定要查看的初始文件夹来查看收件箱。 因此,您可以在循环时search文件夹。 您可以通过循环加深来进一步添加子文件夹,或者通过说folders.count> X.
我总是从Excel中发现Outlook令人沮丧,所以使这个早期的编程更容易。 这意味着您将需要去工具/参考并添加Microsoft Outlook 16(x).0对象库
您可以在编码后将其更改回迟,因为早期的绑定会给您带来智能感知,使生活变得更加简单。
Sub GetEmail() Dim OutApp As Outlook.Application Dim Namespace As Outlook.Namespace Dim Mfolder As Outlook.MAPIFolder Dim myMail As Outlook.Items Dim Folder As Outlook.MAPIFolder Dim SubFolder As Outlook.MAPIFolder Dim UserFolder As Outlook.MAPIFolder Set OutApp = New Outlook.Application Set Namespace = OutApp.GetNamespace("MAPI") On Error Resume Next For Each Folder In Namespace.Folders For Each SubFolder In Folder.Folders For Each UserFolder In SubFolder.Folders Debug.Print Folder.Name, "|", SubFolder.Name, "|", UserFolder.Name Next UserFolder Next SubFolder Next Folder On Error GoTo 0 End Sub
错误是跳过任何问题与Outlook映射存档pst文件。