Excel VBA 连接 Outlook 以在根文件夹中创建文件夹

Posted

技术标签:

【中文标题】Excel VBA 连接 Outlook 以在根文件夹中创建文件夹【英文标题】:Excel VBA connectting outlook to create folder in rootfolder 【发布时间】:2022-01-16 03:06:00 【问题描述】:

iw ant 在 Outlook 中创建文件夹,它包含一组帐户,但我需要使用 Excel VBA 在特定的电子邮件帐户中创建文件夹。 kInldy 帮我解决这个问题。

【问题讨论】:

这能回答你的问题吗? Get reference to additional Inbox 【参考方案1】:

您似乎需要从 Excel VBA 自动化 Outlook 并在配置文件中创建一个文件夹。 Automating Outlook from a Visual Basic Application 文章描述了所有必需的步骤。

如果您在 Outlook 配置文件中配置了多个帐户,则可以使用 Stores 对象,它代表一组 Store 对象,代表当前配置文件中可用的所有商店。例如:

Sub EnumerateFoldersInStores() 
 Dim colStores As Outlook.Stores
 Dim oStore As Outlook.Store 
 Dim oRoot As Outlook.Folder 
 
 On Error Resume Next 
 
 Set colStores = Application.Session.Stores
 
 For Each oStore In colStores 
   Set oRoot = oStore.GetRootFolder
   Debug.Print (oRoot.FolderPath)
   EnumerateFolders oRoot 
 Next
End Sub 
 
Private Sub EnumerateFolders(ByVal oFolder As Outlook.Folder) 
 Dim folders As Outlook.folders 
 Dim Folder As Outlook.Folder 
 Dim foldercount As Integer 
 
 On Error Resume Next 
 
 Set folders = oFolder.folders 
 foldercount = folders.Count 
 'Check if there are any folders below oFolder 
 If foldercount Then 
   For Each Folder In folders 
     Debug.Print (Folder.FolderPath) 
     EnumerateFolders Folder 
   Next 
 End If 
 
End Sub

配置文件定义一个或多个电子邮件帐户,每个电子邮件帐户都与特定类型的服务器相关联。对于 Exchange 服务器,存储可以位于服务器上、Exchange 公用文件夹或本地个人文件夹文件 (.pst) 或脱机文件夹文件 (.ost) 中。对于 POP3、IMAP 或 HTTP 电子邮件服务器,存储是一个 .pst 文件。

您可以使用StoresStore 对象枚举当前会话中所有商店的所有文件夹和搜索文件夹。由于在存储中获取根文件夹或搜索文件夹需要打开存储,并且打开存储会对性能造成开销,因此您可以在决定执行操作之前检查Store.IsOpen 属性。

找到Store 对象后,您可以使用Store 类的GetDefaultFolder 或GetRootFolder 查找应在其中创建新文件夹的文件夹。

最后,您可能会发现Storing Outlook Items 页面很有帮助。

【讨论】:

嗨,谢谢你的重播, 实际上我正在使用下面的代码,但不知道如何为特定帐户添加默认文件夹,请帮助我。 您可以使用 Namespace.Accounts 属性在 Outlook 中迭代帐户。 Account.DeliveryStore 属性返回一个 Store 对象,该对象表示帐户的默认交付存储。

以上是关于Excel VBA 连接 Outlook 以在根文件夹中创建文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何使用excel vba,对outlook进行操作?

Excel VBA - 搜索范围和连接的 SQL ADODB 记录集以在列中匹配写入结果集

VBA:将表格从 Excel 发送到 Outlook [重复]

从excel vba发送outlook邮件

使用Excel VBA打开Outlook .msg文件

如何使用 Excel VBA 打开 Outlook excel 附件,在特定时间范围内发送到特定 Outlook 文件夹?