Parfois, vous souhaiterez peut-être compresser toutes les pièces jointes d'un e-mail dans un zip fichier directement dans Outlook. Dans ce cas, vous pouvez utiliser le code VBA présenté dans cet article pour obtenir cette fonctionnalité.
Par défaut, Outlook a sa limite de taille de pièce jointe - 20 Mo pour POP3, IMAP ou d'autres comptes de messagerie Web et 10 Mo pour les comptes Exchange. Ainsi, lorsque la taille totale des pièces jointes dépasse la limite, vous obtiendrez des erreurs associées. Dans ce cas, il est judicieux de compresser toutes les pièces jointes dans un zip fichier.

Cependant, comme vous pouvez le voir, Outlook n'offre pas une telle fonctionnalité directe. C'est-à-dire qu'il faut d'abord zip ces fichiers sur le disque dur, puis rattachez le nouveau zip En réalité, la plupart des utilisateurs souhaitent pouvoir le faire directement dans Outlook. Pour répondre à cette demande, nous allons vous montrer comment utiliser VBA pour y parvenir.
Compressez toutes les pièces jointes dans un Zip Fichier
- En premier lieu, lancez votre application Outlook.
- Appuyez ensuite sur les touches "Alt + F11" dans la fenêtre principale d'Outlook.
- Ensuite, dans la nouvelle fenêtre de l'éditeur Outlook VBA, ouvrez un module.
- Ensuite, copiez et collez les codes VBA suivants dans le module.
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
- Après cela, vous devez vérifier vos paramètres de macro Outlook pour vous assurer que la macro est autorisée.
- Plus tard, vous pouvez ajouter le nouveau projet VBA à la barre d'outils d'accès rapide de la fenêtre de message comme d'habitude.
- Finalement, vous pouvez essayer.
- Tout d'abord, créez un nouvel e-mail et joignez plusieurs fichiers. Ou ouvrez simplement un e-mail avec de nombreuses pièces jointes.
- Cliquez ensuite sur le bouton macro dans la barre d'outils d'accès rapide.
- Plus tard, vous devrez spécifier un nom pour le zip fichier et appuyez sur "OK". Par défaut, il sera défini comme le sujet du courrier.
- À la fois, toutes les pièces jointes seront compressées dans un zip fichier, comme la capture d'écran suivante :
Décompressez le .Zip Pièces jointes directement dans Outlook
Il est inévitable que vous receviez des pièces jointes avec «.zipIl arrive que l'extension de fichier soit « .txt ». Dans ce cas, vous pouvez décompresser directement ces fichiers depuis Outlook plutôt que de les enregistrer et de les décompresser sur votre disque dur. Bien qu'Outlook ne propose pas cette fonctionnalité nativement, vous pouvez utiliser VBA pour y parvenir. Pour plus de détails, consultez l'article suivant : « … »Comment dézipper le .Zip Pièces jointes directement dans Outlook via VBA ».
Introduction de l'auteur:
Shirley Zhang est une experte en récupération de données dans DataNumen, Inc., qui est le leader mondial des technologies de récupération de données, y compris correction sql et produits logiciels de réparation Outlook. Pour plus d'informations, visitez www.datanumen.com


