VBA - Outlook 不删除附件

作者:编程家 分类: vba 时间:2025-08-09

VBA 自动处理 Outlook 邮件附件

在日常的工作中,我们经常需要处理大量的邮件附件。然而,Outlook 默认的行为是在回复或转发邮件时,附件会被自动删除。这可能导致我们在后续处理中遇到一些困难。本文将介绍如何使用 VBA 编写代码,实现在 Outlook 中不删除附件的功能。

案例代码:

vba

Sub SaveAttachments()

Dim objOL As Outlook.Application

Dim objMsg As Outlook.MailItem

Dim objAttachments As Outlook.Attachments

Dim objAttachment As Outlook.Attachment

Dim objFSO As Object

Dim objFolder As Object

Dim strFolderPath As String

' 设置保存附件的文件夹路径

strFolderPath = "C:\Attachments"

' 创建一个 Outlook 应用对象

Set objOL = Outlook.Application

' 获取当前选中的邮件

Set objMsg = objOL.ActiveExplorer.Selection.Item(1)

' 获取邮件中的附件集合

Set objAttachments = objMsg.Attachments

' 检查是否有附件

If objAttachments.Count > 0 Then

' 创建一个文件系统对象

Set objFSO = CreateObject("Scripting.FileSystemObject")

' 检查保存附件的文件夹是否存在,不存在则创建

If Not objFSO.FolderExists(strFolderPath) Then

objFSO.CreateFolder strFolderPath

End If

' 保存每个附件

For Each objAttachment In objAttachments

objAttachment.SaveAsFile strFolderPath & "\" & objAttachment.FileName

Next objAttachment

End If

' 清除对象

Set objAttachment = Nothing

Set objAttachments = Nothing

Set objMsg = Nothing

Set objOL = Nothing

MsgBox "附件已保存至:" & strFolderPath

End Sub

使用 VBA 处理 Outlook 附件的详细步骤:

1. 打开 Outlook,并按下 ALT + F11 进入 VBA 编辑器。

2. 在 VBA 编辑器中,选择 插入 > 模块,创建一个新的模块。

3. 将上述案例代码复制粘贴到新模块中。

4. 修改代码中的文件夹路径(strFolderPath),确保附件保存到您希望的目录。

5. 关闭 VBA 编辑器。

6. 在 Outlook 中,选择要处理附件的邮件。

7. 打开开发人员选项卡,然后点击

8. 选择SaveAttachments宏,并点击运行

实例解释:

以上 VBA 代码实例中,我们首先创建了一个 Outlook 应用对象,并获取当前选中的邮件。然后,我们使用邮件对象的 Attachments 属性获取附件集合。如果附件数大于 0,我们创建一个文件系统对象,并检查保存附件的文件夹是否存在。如果文件夹不存在,则创建该文件夹。最后,我们使用 Attachment 对象的 SaveAsFile 方法将附件保存到指定的文件夹中。

注意事项:

- 请确保在运行代码之前已经选中了要处理附件的邮件。

- 请确保在运行代码之前已经启用了 Outlook 的开发人员选项卡。

通过使用 VBA 编写代码,我们可以在 Outlook 中实现不删除附件的功能,从而更方便地处理大量的邮件附件。无论是保存附件、备份附件还是其他附件处理操作,都可以通过自定义的 VBA 代码来实现。希望本文能够帮助您更好地利用 VBA 自动处理 Outlook 邮件附件。