Alcuni utenti vorrebbero comprimere tutte le e-mail in una cartella di Outlook in un file zip file. Sebbene non esista una funzione così diretta, è possibile utilizzare il codice VBA esposto in questo articolo per realizzarla rapidamente.
A zip Per inviare tutte le email in una cartella di Outlook, è necessario prima esportarle una per una nell'unità locale e quindi utilizzare la funzione "Invia a" > "Cartella compressa (zippata)". Senza dubbio, in questo modo il procedimento è troppo laborioso. Pertanto, per aiutarvi a farlo in un colpo solo, di seguito vi insegneremo un altro metodo. Vi insegneremo come farlo con il codice VBA. Se non avete familiarità con VBA, potete fare riferimento a "Come eseguire il codice VBA in Outlook" nel frattempo.

Comprimi tutte le email in una cartella in a Zip Compila il
- Per iniziare, avvia l'editor VBA di Outlook tramite la combinazione di tasti "Alt + F11".
- Quindi, copia e incolla il codice VBA in un modulo.
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
- Successivamente, fai clic sul pulsante "F5" per eseguire questa macro.
- Successivamente, nella finestra di dialogo popup, seleziona la cartella di origine di Outlook e fai clic su "OK".
- Al termine della macro, verrà visualizzata una cartella Windows, in cui è presente un nuovo file zip file che contiene tutte le email dalla cartella di Outlook selezionata, come mostrato nella figura seguente.
Gestire la fastidiosa corruzione dei file di Outlook
Tra tutti i problemi comuni di Outlook, senza dubbio il danneggiamento di Outlook è il più grave. Tuttavia, in realtà, tali problemi possono verificarsi in qualsiasi momento. Pertanto, se sei un utente regolare di Outlook, devi eseguire backup regolari dei dati di Outlook. Inoltre, è prudente procurarsi un robusto Riparazione di Outlook utilità, come ad es DataNumen Outlook Repair.
Introduzione dell'autore:
Shirley Zhang è un'esperta di recupero dati in DataNumen, Inc., che è il leader mondiale nelle tecnologie di recupero dati, tra cui correzione sql e prodotti software di riparazione di Outlook. Per maggiori informazioni visita www.datanumen.com


