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 文件。
您可以使用Stores
和Store
对象枚举当前会话中所有商店的所有文件夹和搜索文件夹。由于在存储中获取根文件夹或搜索文件夹需要打开存储,并且打开存储会对性能造成开销,因此您可以在决定执行操作之前检查Store.IsOpen
属性。
找到Store
对象后,您可以使用Store 类的GetDefaultFolder 或GetRootFolder 查找应在其中创建新文件夹的文件夹。
最后,您可能会发现Storing Outlook Items 页面很有帮助。
【讨论】:
嗨,谢谢你的重播, 实际上我正在使用下面的代码,但不知道如何为特定帐户添加默认文件夹,请帮助我。 您可以使用Namespace.Accounts
属性在 Outlook 中迭代帐户。 Account.DeliveryStore 属性返回一个 Store
对象,该对象表示帐户的默认交付存储。以上是关于Excel VBA 连接 Outlook 以在根文件夹中创建文件夹的主要内容,如果未能解决你的问题,请参考以下文章
Excel VBA - 搜索范围和连接的 SQL ADODB 记录集以在列中匹配写入结果集
VBA:将表格从 Excel 发送到 Outlook [重复]
如何使用 Excel VBA 打开 Outlook excel 附件,在特定时间范围内发送到特定 Outlook 文件夹?