如果您希望从 Outlook 中的过时约会和会议中删除附件,您可以阅读这篇文章。 下面就给大家介绍一下如何一口气实现。
要减小 Outlook 文件的大小,强烈建议清理旧项目。 这可以通过内置的“AutoArchive”功能来实现,它可以定期自动删除旧项目。 然而,一些用户只是希望删除旧项目中的附件而不影响项目本身。 在下文中,我们将教您批量删除旧日历项目中的附件。
从过时的日历项目中批量删除附件
- 首先,通过“Alt + F11”访问 Outlook VBA 编辑器。
- 然后,在“Microsoft Visual Basic for Applications”窗口中,将 VBA 代码复制到一个模块中。
Sub BatchDeleteAttachmentsOfOldCalendarItems()
Dim objOutlookFile As Outlook.Folder
Dim objFolder As Outlook.Folder
'Change to your own Outlook file
Set objOutlookFile = Outlook.Application.Session.Folders("John Smith")
For Each objFolder In objOutlookFile.Folders
If objFolder.DefaultItemType = olAppointmentItem Then
Call LoopCalendars(objFolder)
End If
Next
End Sub
Sub LoopCalendars(ByVal objCalendar As Outlook.Folder)
Dim i, n As Long
Dim objCalendarItem As Outlook.AppointmentItem
Dim nDateDiff As Integer
Dim objAttachments As Outlook.Attachments
Dim objSubCalendar As Outlook.Folder
For i = objCalendar.Items.Count To 1 Step -1
Set objCalendarItem = objCalendar.Items(i)
'Remove attachments from items that are more than 2 months old
'Change the datediff as per your needs
nDateDiff = DateDiff("m", objCalendarItem.End, Now) '=> "m" refers to month; "d" for day; "y" for year
If nDateDiff > 2 Then
Set objAttachments = objCalendarItem.Attachments
If objAttachments.Count > 0 Then
For n = objAttachments.Count To 1 Step -1
objAttachments(n).Delete
Next
End If
objCalendarItem.Save
End If
Next
'Process all subfolders recursively
If objCalendar.Folders.Count > 0 Then
For Each objSubCalendar In objCalendar.Folders
Call LoopCalendars(objSubCalendar)
Next
End If
End Sub
- 然后,单击“BatchDeleteAttachmentsOfOldCalendarItems”宏。
- 最后,按“F5”键按钮运行这个宏。
- 宏完成后,您可以检查所有 Outlook 日历。
- Outlook 必须删除超过 2 个月的日历项目的所有附件。
处理损坏的 Outlook 文件
您遇到过 Outlook 损坏吗? 你通常如何处理它? 通常,您会先尝试收件箱修复工具 – 扫描仪. 但是,如果出现严重的 PST 损坏,内置实用程序将无能为力。 因此,建议在附近保留一个更有经验和卓越的第三方工具,例如 DataNumen Outlook Repair.
作者简介:
Shirley Zhang 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 sql修复 和 outlook 修复软件产品。 欲了解更多信息,请访问 datanumen.com


