Noen brukere ønsker å komprimere alle e-postene i en Outlook-mappe til en zip fil. Selv om det ikke er en slik direkte funksjon, kan du bruke VBA-koden som er eksponert i denne artikkelen for å realisere den raskt.
Til zip alle e-poster i en Outlook-mappe, må du først eksportere dem til lokal stasjon én etter én, og deretter bruke “Send til” > “Komprimert (zipped) mappe"-funksjonen. Uten tvil, på denne måten er det for kjedelig. Derfor, for å hjelpe deg med å realisere det på én gang, vil vi i det følgende lære deg en annen metode. Det vil lære deg hvordan du får det med VBA-kode. Hvis du ikke er kjent med VBA, kan du se "Hvordan kjøre VBA-kode i Outlook" i mellomtiden.

Komprimer alle e-poster i en mappe til en Zip filet
- For somtart, start Outlook VBA-redigering via "Alt + F11".
- Deretter kopierer og limer du inn VBA-koden i en modul.
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
- Etterpå klikker du på "F5"-tasten for å kjøre denne makroen.
- Senere, i popup-dialogboksen, velg kilden for Outlook-mappen og klikk "OK".
- Når makroen er ferdig, vil en Windows-mappe vises, der det er en ny zip fil som inneholder alle e-postene fra den valgte Outlook-mappen, som vist i følgende figur.
Håndter plagsom Outlook-filkorrupsjon
Blant alle de vanlige problemene i Outlook er Outlook-skaden utvilsomt most seriøs en. Men i virkeligheten kan slike problemer finne sted når som helst. Derfor, hvis du er en vanlig Outlook-bruker, må du ta regelmessige sikkerhetskopier av Outlook-data. Dessuten er det fornuftig å få tak i en robust Outlook reparasjon nytte, som f.eks DataNumen Outlook Repair.
Forfatterintroduksjon:
Shirley Zhang er en datagjenopprettingsekspert innen DataNumen, Inc., som er verdensledende innen datagjenopprettingsteknologier, inkludert sql fikse og Outlook-reparasjonsprodukter. For mer informasjon besøk www.datanumen. Med


