为了保持Outlook邮箱体积小,防止Outlook数据损坏,建议删除特定时间段前接收或发送的邮件中的附件。 本文将帮助您使用 Outlook VBA 快速完成它。
众所周知,随着 Outlook 邮箱变大,Outlook 数据将变得更加脆弱。 因此,我习惯于删除比特定日期更早的旧电子邮件中的附件,因为我之前通常将这些附件保存到我的本地磁盘。 但是有点麻烦,我必须找出哪些电子邮件已过时,然后手动删除附件。 为了提高效率,我想出了一个解决办法,就是用Outlook VBA。
从收到的早于特定日期的电子邮件中删除附件
- 首先,打开 Outlook 并转到“开发人员”选项卡。
- 然后按“代码”组中的“Visual Basic”按钮。

- 将出现一个新窗口。 在其中,您应该打开一个新模块并将以下代码复制到其中。
Sub RemoveAttachmentsfromAgedEmail()
Dim olInbox As Outlook.Folder
Dim varItem As Variant
Dim i As Integer
Dim intDatDiff As Integer
Dim Att As Attachment
Set olInbox = Session.GetDefaultFolder(olFolderInbox)
For i = olInbox.Items.Count To 1 Step -1
Set varItem = olInbox.Items.Item(i)
If varItem.Class = olMail Then
'calculate the period between now and the received time
intDatDiff = DateDiff("d", varItem.ReceivedTime, Now)
'You can replace "50" as per your needs
If intDatDiff > 50 Then
For Each Att In varItem.Attachments
Att.Delete
Next Att
varItem.Save
End If
End If
Next
End Sub
- 现在您可以退出当前的“Visual Basic”窗口并继续将宏添加到快速访问工具栏。 请按照以下步骤操作:
- 首先,点击快速访问工具栏中的向下箭头,然后从下拉列表中选择“更多命令”。
- 然后您应该在“从以下位置选择命令”字段中选择“宏”。
- 接下来选择正确的宏并单击中间的“添加”按钮。
- 最后,单击“确定”按钮启用它并返回 Outlook 主窗口。
- 最终您可以找到并单击快速访问工具栏中的按钮。 邮件中早于您指定日期的附件将被快速删除。
从早于特定日期的已发送电子邮件中删除附件
为了达到这个目的,您可以复制上面的整个 VBA 代码,但按照以下注意事项更改某些行:
- 首先,将 VBA 代码中的所有“olInbox”更改为“olSentItemFolder”。
- 然后将“Set olInbox = Session.GetDefaultFolder(olFolderInbox)”替换为:
Set olSentItemFolder = Session.GetDefaultFolder(olFolderSentMail)
- 接下来将“intDatDiff = DateDiff(“d”, varItem.ReceivedTime, Now)”替换为:
intDatDiff = DateDiff("d", varItem.SentOn, Now)
消除烦人的 Outlook 错误
如果您长期使用 Outlook,那么频繁的错误一定成为家常便饭。 很明显,您无法预测或完全摆脱它们。 你能做的就是尽力去解决它们。 例如,使用收件箱修复工具 Scanpest.exe 来 修复 Outlook 电子邮件错误. 此外,您必须定期备份 Outlook 数据以防意外崩溃。
作者简介:
Shirley Zhang 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 修复 SQL Server 中密度纤维板损坏 和 outlook 修复软件产品。 欲了解更多信息,请访问 datanumen.com


