A veces, es posible que desee comprimir todos los archivos adjuntos de un correo electrónico en un zip archivo directamente en Outlook. En este caso, puede usar el código VBA presentado en este artículo para lograr esta función.
De forma predeterminada, Outlook tiene su límite de tamaño de archivo adjunto: 20 MB para POP3, IMAP u otras cuentas de correo electrónico basadas en web y 10 MB para cuentas de Exchange. Entonces, cuando el tamaño total de los archivos adjuntos exceda el límite, obtendrá errores relacionados. En este caso, es una buena opción comprimir todos los archivos adjuntos en un zip .

Sin embargo, como puede ver, Outlook no ofrece una función tan directa. Es decir, primero necesitas zip estos archivos en el disco duro y luego vuelva a adjuntar el recién creado zip En realidad, la mayoría de los usuarios esperan poder lograrlo directamente en Outlook. Para responder a esta necesidad, a continuación explicaremos cómo usar VBA para conseguirlo.
Comprima todos los archivos adjuntos en un Zip Archivo
- En primer lugar, inicie su aplicación Outlook.
- Luego presione los botones de tecla "Alt + F11" en la ventana principal de Outlook.
- A continuación, en la nueva ventana del editor de Outlook VBA, abra un módulo.
- Posteriormente, copie y pegue los siguientes códigos VBA en el módulo.
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
- Después de eso, debe verificar la configuración de la macro de Outlook para asegurarse de que la macro esté permitida.
- Más tarde, puede agregar el nuevo proyecto VBA a la barra de herramientas de acceso rápido de la ventana de mensajes como de costumbre.
- Eventualmente puedes intentarlo.
- En primer lugar, cree un nuevo correo electrónico y adjunte varios archivos. O simplemente abra un correo con muchos archivos adjuntos.
- A continuación, haga clic en el botón de macro en la barra de herramientas de acceso rápido.
- Más tarde, debe especificar un nombre para el zip archivo y presione "Aceptar". De forma predeterminada, se establecerá igual que el asunto del correo.
- A la vez, todos los archivos adjuntos se comprimirán en un zip archivo, como la siguiente captura de pantalla:
Descomprime el .Zip Archivos adjuntos directamente en Outlook
Es inevitable que reciba archivos adjuntos con “.zipLa extensión de archivo ” aparece de vez en cuando. En este caso, es posible que desee descomprimir directamente dichos archivos desde Outlook en lugar de guardarlos y descomprimirlos en la unidad local. Aunque Outlook no tiene una función nativa para esto, también puede usar VBA para obtenerlo. Para obtener más detalles, puede consultar otro artículo: “Cómo descomprimir el .Zip Archivos adjuntos directamente en Outlook a través de VBA.
Introducción del autor:
Shirley Zhang es experta en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo corrección de sql y productos de software de reparación de Outlook. Para más información visite www.datanumen.com


