Μερικές φορές, μπορεί να θέλετε να συμπιέσετε όλα τα συνημμένα σε ένα email σε ένα zip αρχείο απευθείας στο Outlook. Σε αυτήν την περίπτωση, μπορείτε να χρησιμοποιήσετε τον κωδικό VBA που παρουσιάζεται σε αυτό το άρθρο για να επιτύχετε αυτήν τη δυνατότητα.
Από προεπιλογή, το Outlook έχει το όριο μεγέθους συνημμένου - 20 MB για λογαριασμούς email POP3, IMAP ή άλλους ιστούς και 10 MB για λογαριασμούς Exchange. Έτσι, όταν το συνολικό μέγεθος των συνημμένων υπερβαίνει το όριο, θα λάβετε σχετικά σφάλματα. Σε αυτήν την περίπτωση, είναι καλή επιλογή να συμπιέσετε όλα τα συνημμένα σε ένα zip αρχείο.

Ωστόσο, όπως μπορείτε να δείτε, το Outlook δεν προσφέρει μια τέτοια άμεση δυνατότητα. Δηλαδή, πρέπει πρώτα zip αυτά τα αρχεία στον σκληρό δίσκο και, στη συνέχεια, επανασυνδέστε τα νεοδημιουργηθέντα zip αρχείο. Στην πραγματικότητα, οι περισσότεροι χρήστες ελπίζουν ότι μπορούν να το επιτύχουν απευθείας μέσα στο Outlook. Για να ανταποκριθούμε σε αυτήν την απαίτηση, θα παρουσιάσουμε τον τρόπο χρήσης της VBA για την υλοποίησή της παρακάτω.
Συμπίεση όλων των συνημμένων σε ένα Zip Αρχεία
- Πρώτα, ξεκινήστε την εφαρμογή Outlook.
- Στη συνέχεια, πατήστε τα πλήκτρα "Alt + F11" στο κύριο παράθυρο του Outlook.
- Στη συνέχεια, στο νέο παράθυρο του προγράμματος επεξεργασίας του Outlook VBA, ανοίξτε μια ενότητα.
- Στη συνέχεια, αντιγράψτε και επικολλήστε τους ακόλουθους κωδικούς VBA στη λειτουργική μονάδα.
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
- Μετά από αυτό, πρέπει να ελέγξετε τις ρυθμίσεις μακροεντολών του Outlook για να βεβαιωθείτε ότι επιτρέπεται η μακροεντολή.
- Αργότερα μπορείτε να προσθέσετε το νέο έργο VBA στη γραμμή εργαλείων γρήγορης πρόσβασης του παραθύρου μηνυμάτων ως συνήθως.
- Τελικά μπορείτε να δοκιμάσετε.
- Αρχικά, δημιουργήστε ένα νέο email και επισυνάψτε πολλά αρχεία. Ή απλώς ανοίξτε ένα μήνυμα με πολλά συνημμένα.
- Στη συνέχεια, κάντε κλικ στο κουμπί μακροεντολής στη γραμμή εργαλείων γρήγορης πρόσβασης.
- Αργότερα πρέπει να καθορίσετε ένα όνομα για το zip αρχείο και πατήστε "OK". Από προεπιλογή, θα οριστεί ίδιο με το θέμα αλληλογραφίας.
- Αμέσως, όλα τα συνημμένα θα συμπιεστούν σε ένα zip αρχείο, όπως το ακόλουθο στιγμιότυπο οθόνης:
Αποσυμπιέστε το .Zip Συνημμένα απευθείας στο Outlook
Είναι αναπόφευκτο να λάβετε τυχόν συνημμένα με ".zip" επέκταση αρχείου κατά καιρούς. Σε αυτό το σενάριο, ίσως θελήσετε να αποσυμπιέσετε απευθείας τέτοια αρχεία από το Outlook αντί να τα αποθηκεύσετε και να τα αποσυμπιέσετε στην τοπική μονάδα δίσκου. Παρόλο που το Outlook δεν διαθέτει μια τέτοια εγγενή λειτουργία, μπορείτε να χρησιμοποιήσετε και το VBA για να το αποκτήσετε. Για περισσότερες λεπτομέρειες, μπορείτε να ανατρέξετε σε ένα άλλο άρθρο - "Πώς να αποσυμπιέσετε το .Zip Συνημμένα απευθείας στο Outlook μέσω VBA".
Εισαγωγή συγγραφέα:
Η Shirley Zhang είναι ειδικός ανάκτησης δεδομένων στο DataNumen, Inc., η οποία είναι ο παγκόσμιος ηγέτης στις τεχνολογίες ανάκτησης δεδομένων, συμπεριλαμβανομένων επιδιόρθωση sql και προϊόντα λογισμικού επισκευής προοπτικών. Για περισσότερες πληροφορίες επισκεφθείτε www.datanumen.com


