如何快速将所有附件压缩成一个 Zip Outlook 电子邮件中的文件

立即分享:

有时,您可能希望将电子邮件中的所有附件压缩成一个 zip 直接在 Outlook 中归档。 在这种情况下,您可以使用本文介绍的 VBA 代码来实现此功能。

默认情况下,Outlook 有其附件大小限制——POP20、IMAP 或其他基于 Web 的电子邮件帐户为 3 MB,Exchange 帐户为 10 MB。 因此,当附件总大小超过限制时,您将收到相关错误。 在这种情况下,将所有附件压缩到一个文件中是一个不错的选择 zip 文件中。

快速将所有附件压缩成一个 Zip Outlook 电子邮件中的文件

但是,如您所见,Outlook 不提供这种直接的功能。 也就是说,你需要先 zip 这些文件在硬盘驱动器中,然后重新附加新创建的 zip 文件。 实际上,米ost 用户希望能在Outlook中直接实现。 针对这一需求,下面将介绍如何使用VBA实现。

将所有附件压缩成 Zip 文件

  1. 首先,启动您的 Outlook 应用程序。
  2. 然后在 Outlook 主窗口中按“Alt + F11”键按钮。
  3. 接下来在新的 Outlook VBA 编辑器窗口中,打开一个模块。
  4. 随后,将以下 VBA 代码复制并粘贴到模块中。
Sub ZipAttachments()
    Dim objMail As Outlook.MailItem
    Dim objAttachments As Outlook.attachments
    Dim objAttachment As Outlook.Attachment
    Dim objFileSystem As Object
    Dim objShell As Object
    Dim varTempFolder As Variant
    Dim varZipFile As Variant
 
    'Save the attachments to Temporary folder
    Set objFileSystem = CreateObject("Scripting.FileSystemObject")
    varTempFolder = objFileSystem.GetSpecialFolder(2).Path & "\Temp " & Format(Now, "dd-mm-yyyy- hh-mm-ss-")
    MkDir (varTempFolder)
    varTempFolder = varTempFolder & "\"
 
    Set objMail = Outlook.Application.ActiveInspector.CurrentItem
    Set objAttachments = objMail.attachments
    For Each objAttachment In objAttachments
        objAttachment.SaveAsFile (varTempFolder & objAttachment.FileName)
    Next
 
    'Create a new zip file
    varZipFile = InputBox("Specify a name for the new zip file", "Name Zip File", objMail.Subject)
    varZipFile = objFileSystem.GetSpecialFolder(2).Path & "\" & varZipFile & ".zip"
    Open varZipFile For Output As #1
    Print #1, Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String(18, 0)
    Close #1
 
    'Copy all the saved attachments to the new zip file
     Set objShell = CreateObject("Shell.Application")
     objShell.NameSpace(varZipFile).CopyHere objShell.NameSpace(varTempFolder).Items

     'Keep macro running until Compressing is done
     On Error Resume Next
     Do Until objShell.NameSpace(varZipFile).Items.Count = objShell.NameSpace(varTempFolder).Items.Count
        Application.Wait (Now + TimeValue("0:00:01"))
     Loop
     On Error GoTo 0
 
     'Delete all the attachments
     Set objAttachments = objMail.attachments
     While objAttachments.Count > 0
           objAttachments.Item(1).Delete
     Wend
 
     'Add the new zip file to the current email 
     objMail.attachments.Add varZipFile
 
    'Prompt
    MsgBox ("Complete!")
End Sub

VBA代码——快速将所有附件压缩成一个 Zip Outlook 电子邮件中的文件

  1. 之后,您需要检查您的 Outlook 宏设置以确保允许宏。
  2. 稍后您可以像往常一样将新的 VBA 项目添加到消息窗口的快速访问工具栏中。
  3. 最终你可以尝试一下。
  • 首先,创建一个新电子邮件并附加几个文件。 或者只是打开一封包含许多附件的邮件。
  • 接下来单击快速访问工具栏中的宏按钮。
  • 稍后您需要为 zip 文件并点击“确定”。 默认情况下,它将设置为与邮件主题相同。指定名称 zip 文件
  • 一次,所有附件将被压缩成一个 zip 文件,如以下截图:将所有附件压缩成 Zip 文件

Unzip 的。Zip 附件直接在 Outlook 中

您不可避免地会收到带有“.zip”文件扩展名。 在这种情况下,您可能想直接取消zip 从 Outlook 中删除此类文件,而不是在本地驱动器上保存和解压缩它们。 即使 Outlook 没有这样的本机功能,您仍然可以使用 VBA 来获得它。 更详细的可以参考另一篇文章——》如何解开zip 的。Zip 通过 VBA 直接在 Outlook 中添加附件“。

作者简介:

Shirley Zhang 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 修复 和 outlook 修复软件产品。 欲了解更多信息,请访问 datanumen.com

立即分享:

评论被关闭。