Certains utilisateurs aimeraient compresser tous les e-mails d'un dossier Outlook dans un zip déposer. Bien qu'il n'y ait pas une telle fonction directe, vous pouvez utiliser le code VBA exposé dans cet article pour le réaliser rapidement.
À zip Pour exporter tous les e-mails d'un dossier Outlook, vous devez d'abord les exporter un par un vers votre disque dur local, puis utiliser la fonction « Envoyer vers » > « Dossier compressé (zippé) ». Cette méthode est sans aucun doute fastidieuse. C'est pourquoi, afin de vous faciliter la tâche, nous allons vous présenter une autre méthode : l'utilisation du code VBA. Si vous n'êtes pas familier avec VBA, vous pouvez consulter…Comment exécuter le code VBA dans votre Outlook" pendant ce temps.
Compresser tous les e-mails d'un dossier dans un Zip Fichier
- Pour commencer, lancez l'éditeur VBA d'Outlook via « Alt + F11 ».
- Ensuite, copiez et collez le code VBA dans un module.
Sub ZipAllEmailsInAFolder()
Dim objFolder As Outlook.Folder
Dim objItem As Object
Dim objMail As Outlook.MailItem
Dim strSubject As String
Dim varTempFolder As Variant
Dim varZipFile As Variant
Dim objShell As Object
Dim objFileSystem As Object
'Select an Outlook Folder
Set objFolder = Outlook.Application.Session.PickFolder
If Not (objFolder Is Nothing) Then
'Create a temp folder
varTempFolder = "E:\" & objFolder.Name & Format(Now, "YYMMDDHHMMSS")
MkDir (varTempFolder)
varTempFolder = varTempFolder & "\"
'Save each email as msg file
For Each objItem In objFolder.Items
If TypeOf objItem Is MailItem Then
Set objMail = objItem
strSubject = objMail.Subject
strSubject = Replace(strSubject, "/", " ")
strSubject = Replace(strSubject, "\", " ")
strSubject = Replace(strSubject, ":", "")
strSubject = Replace(strSubject, "?", " ")
strSubject = Replace(strSubject, Chr(34), " ")
objMail.SaveAs varTempFolder & strSubject & ".msg", olMSG
End If
Next
'Create a new ZIP file
varZipFile = "E:\" & objFolder.Name & " Emails.zip"
Open varZipFile For Output As #1
Print #1, Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String(18, 0)
Close #1
'Add the exported msg files to the ZIP file
Set objShell = CreateObject("Shell.Application")
objShell.NameSpace(varZipFile).CopyHere objShell.NameSpace(varTempFolder).Items
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 the temp folder
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
objFileSystem.DeleteFolder Left(varTempFolder, Len(varTempFolder) - 1)
End If
End Sub
- Ensuite, cliquez sur le bouton "F5" pour exécuter cette macro.
- Plus tard, dans la boîte de dialogue contextuelle, sélectionnez le dossier Outlook source et cliquez sur "OK".
- Lorsque la macro se termine, un dossier Windows s'affiche, dans lequel se trouve un nouveau zip fichier contenant tous les e-mails du dossier Outlook sélectionné, comme illustré dans la figure suivante.
Gérer la corruption de fichiers Outlook gênants
Parmi tous les problèmes courants rencontrés avec Outlook, les dommages matériels sont sans conteste les plus graves. Cependant, en réalité, de tels problèmes peuvent survenir à tout moment. Par conséquent, si vous utilisez régulièrement Outlook, il est essentiel d'effectuer des sauvegardes régulières de vos données. De plus, il est judicieux de se procurer un système de sauvegarde robuste. Réparation Outlook utilitaire, comme DataNumen Outlook Repair.
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



