Đôi khi, bạn có thể muốn nén tất cả các tệp đính kèm trong email vào một zip tập tin trực tiếp trong Outlook. Trong trường hợp này, bạn có thể sử dụng mã VBA được giới thiệu trong bài viết này để đạt được tính năng này.
Theo mặc định, Outlook có giới hạn kích thước tệp đính kèm – 20 MB đối với POP3, IMAP hoặc các tài khoản email dựa trên web khác và 10 MB đối với tài khoản Exchange. Vì vậy, khi tổng kích thước của tệp đính kèm vượt quá giới hạn, bạn sẽ gặp phải các lỗi liên quan. Trong trường hợp này, một lựa chọn tốt là nén tất cả các phần đính kèm vào một zip tập tin.

Tuy nhiên, như bạn có thể thấy, Outlook không cung cấp tính năng trực tiếp như vậy. Nghĩa là trước hết bạn phải zip những tập tin này vào ổ cứng rồi đính kèm lại tập tin vừa tạo zip Trên thực tế, hầu hết người dùng đều mong muốn có thể thực hiện trực tiếp thao tác này trong Outlook. Để đáp ứng yêu cầu này, chúng tôi sẽ giới thiệu cách sử dụng VBA để thực hiện điều đó trong phần tiếp theo.
Nén tất cả các tệp đính kèm vào một Zip Tập tin
- Trước tiên, hãy khởi chạy ứng dụng Outlook của bạn.
- Sau đó nhấn các nút phím “Alt + F11” trong cửa sổ chính của Outlook.
- Tiếp theo trong cửa sổ soạn thảo Outlook VBA mới, hãy mở một mô-đun.
- Sau đó, sao chép và dán các mã VBA sau vào mô-đun.
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
- Sau đó, bạn cần kiểm tra cài đặt macro Outlook của mình để đảm bảo macro đó được cho phép.
- Sau này bạn có thể thêm dự án VBA mới vào Thanh công cụ truy cập nhanh của cửa sổ thông báo như bình thường.
- Cuối cùng bạn có thể có một thử.
- Đầu tiên, tạo một email mới và đính kèm một số tệp. Hoặc đơn giản là mở một thư có nhiều tệp đính kèm.
- Tiếp theo bấm vào nút macro trong Thanh công cụ truy cập nhanh.
- Sau này bạn cần phải chỉ định tên cho zip tập tin và nhấn “OK”. Theo mặc định, nó sẽ được đặt giống với chủ đề thư.
- Ngay lập tức, tất cả các tệp đính kèm sẽ được nén thành một zip tập tin, giống như ảnh chụp màn hình sau:
Giải nén .Zip Tệp đính kèm trực tiếp trong Outlook
Chắc chắn bạn sẽ nhận được một số tệp đính kèm có nội dung “.zipThỉnh thoảng, bạn sẽ gặp phải tình trạng tệp có phần mở rộng “.zip”. Trong trường hợp này, bạn có thể muốn giải nén trực tiếp các tệp đó từ bên trong Outlook thay vì lưu và giải nén chúng trên ổ đĩa cục bộ. Mặc dù Outlook không có tính năng này tích hợp sẵn, bạn vẫn có thể sử dụng VBA để thực hiện. Để biết thêm chi tiết, bạn có thể tham khảo bài viết khác – “Cách giải nén .Zip Tệp đính kèm trực tiếp trong Outlook qua VBA".
Giới thiệu tác giả:
Shirley Zhang là một chuyên gia phục hồi dữ liệu trong DataNumen, Inc., công ty hàng đầu thế giới về công nghệ khôi phục dữ liệu, bao gồm sửa lỗi sql và các sản phẩm phần mềm sửa chữa triển vọng. Để biết thêm thông tin, hãy truy cập www.datanumennăm


