Một số người hy vọng rằng Outlook có thể tự động kiểm tra chủ đề của email cũ hơn khi có email mới và đổi tên hoặc xóa email cũ hơn nếu chúng có cùng chủ đề với email mới. Điều này yêu cầu sử dụng Outlook VBA. Bài viết này sẽ giúp bạn đạt được điều đó.
Chắc hẳn bạn đã từng nhận được nhiều email có cùng chủ đề. Có hơi rắc rối cho bạn trong việc xác định và phân biệt chúng trong danh sách email phải không? Hay bạn nghĩ rằng những email cũ đó thực sự vô dụng đối với bạn? Nếu vậy, bạn phải muốn để Outlook tự động quét và kiểm tra tất cả các email hiện có khi có email mới. Khi có những email có chủ đề giống như email mới, Outlook có thể hỏi bạn có đổi tên hoặc xóa chúng không. Không còn nghi ngờ gì nữa, Outlook không cung cấp cho người dùng loại tính năng này. Do đó, bạn phải dùng đến VBA. Ở đây chúng tôi sẽ hiển thị các mã và hoạt động chi tiết cho bạn.
Tự động đổi tên hoặc xóa các email cũ hơn
- Trước tiên, bạn có thể mở Outlook và chuyển đến tab “Nhà phát triển”.
- Sau đó, bạn sẽ có thể tìm và nhấp vào nút “Visual Basic”.
- Sau khi nhấn xong, bạn sẽ truy cập vào cửa sổ soạn thảo VBA. Trong đó, bạn sẽ cần mở dự án “ThisOutlookSession”.
- Tiếp theo, bạn nên sao chép và dán các mã VBA sau vào đó.
Public WithEvents olItems As Outlook.Items
Sub Application_Startup()
'Specify the Emails in Inbox folder
Set olItems = Outlook.Application.Session.GetDefaultFolder(olFolderInbox).Items
End Sub
Private Sub olItems_ItemAdd(ByVal Item As Object)
Dim i As Long
Dim objVariant As Variant
Dim strMsg As String
Dim nRes As Integer
For i = 1 To olItems.Count
Set objVariant = olItems.Item(i)
If TypeOf objVariant Is MailItem Then
If objVariant.Subject = Item.Subject And objVariant.ReceivedTime < Item.ReceivedTime Then
nDateDiff = DateDiff("d", objVariant.ReceivedTime, Now)
'Add "(Old)" suffix to the email subjects
objVariant.Subject = objVariant.Subject & "(Old)"
objVariant.Save
'If the old emails have been recieved for 60 days, ask you whether to delete
If nDateDiff > 60 Then
strMsg = "There are some older emails whcih have the same subjects with the new email and have been recieved for 2 months. Do you want to delete them?"
nRes = MsgBox(strMsg, vbExclamation + vbYesNo, "Find Older Emails")
If nRes = vbYes Then
objVariant.Delete
End If
End If
End If
End If
Next
End Sub
- Sau đó, bạn sẽ được yêu cầu ký điện tử mã này. Nhấn “Công cụ” > “Chữ ký số”. Sau đó, trong hộp thoại bật lên, bạn có thể chọn một chứng chỉ hiện có. Nếu không có chứng chỉ làm sẵn, thì bạn có thể sử dụng “Chứng chỉ kỹ thuật số cho các dự án VBA” để tạo một chứng chỉ mới.
- Sau đó, bạn có thể thoát khỏi cửa sổ hiện tại và tiến hành thay đổi cài đặt macro, chỉ cho phép macro được ký điện tử.
- Cuối cùng, bạn có thể khởi động lại Outlook để kích hoạt macro mới. Từ giờ trở đi, khi có email mới đến Hộp thư đến, Outlook sẽ tự động kiểm tra tất cả các email hiện có.
- Nếu các email cũ có cùng chủ đề với email mới, thì Outlook sẽ tự động thêm hậu tố “(Cũ)” vào chủ đề email.
- Và nếu các email cũ hơn đã được lưu trữ trong Hộp thư đến hơn 2 tháng, thì bạn sẽ nhận được lời nhắc hỏi bạn có muốn xóa chúng không, giống như hình bên dưới. Bạn có thể chọn “Có” hoặc “Không” dựa trên nhu cầu của riêng bạn.
Tệp Outlook bị hỏng do kích thước lớn
Một số người không có thói quen xóa các mục cũ thường xuyên trong Outlook. Do đó, tệp Outlook của họ sẽ có kích thước lớn, điều này hoàn toàn không nên. Bởi vì tệp Outlook quá lớn dễ bị tổn thương hơn nhiều so với tệp có kích thước nhỏ. Một khi tệp bị hỏng, công cụ sửa chữa tích hợp sẵn, Scanpst.exe, sẽ không thể giúp được trong hầu hết các trường hợp. Giải pháp duy nhất của bạn có thể là một công cụ hiệu quả và đã được chứng minh. công cụ sửa chữa Outlook PST bị hỏng, Giống như DataNumen Outlook Repair.
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 chữa bị hỏng SQL Server cơ sở dữ liệu mdf 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


