Được rồi, tôi vừa viết macro Outlook đầu tiên của mình - vì vậy đừng đổ lỗi cho tôi nếu nó xóa tất cả thư của bạn. Sao lưu trước khi bạn thử! :)
Trong Outlook, đi tới Công cụ & gt; Macro & gt; Vĩ mô . Nhập tên bạn muốn cung cấp cho macro. Tôi đặt tên cho mình là "Delete_Old_Notutions".
Đây là mã macro tôi đã viết:
Sub Delete_Old_Notification()
Dim ns As Outlook.NameSpace
Set ns = Application.GetNamespace("MAPI")
Dim inbox As Outlook.MAPIFolder
Set inbox = ns.GetDefaultFolder(olFolderInbox)
Dim item As Object 'Outlook.MailItem
Dim Action As Integer
Dim Categories, Category
Action = 0
For Each item In inbox.Items
If Len(item.Categories & "") > 0 Then
Categories = Split(item.Categories, ";")
For Each Category In Categories
Select Case LCase(Trim(Category))
Case "notification":
If DateDiff("d", item.ReceivedTime, Now) > 14 Then
Action = 1
End If
End Select
Next
End If
Select Case Action
Case 1: MsgBox ("Delete '" & item.Subject & "'") 'item.Delete
End Select
Action = 0
Next
End Sub
(Có thể ngắn hơn, vâng - nhưng tôi đã xây dựng nó để có thể mở rộng.)
Ghi chú:
- Nó nhìn trong hộp thư đến tiêu chuẩn. Nếu bạn muốn thư mục khác, bạn phải sửa đổi thư mục "Đặt hộp thư đến". Để tìm trong các thư mục con của hộp thư đến, hãy thêm .Quản lý ("tên người dùng") ở cuối dòng
- Hiện tại nó kiểm tra xem thư có một danh mục "thông báo" hay không. Nếu bạn muốn một danh mục khác, hãy chèn nó vào Vỏ . Chỉ làm cho nó viết thường vì tôi chuyển đổi tất cả thành chữ thường - chỉ để chắc chắn.
- Hiện tại nó ảnh hưởng đến thư có độ tuổi từ 14 ngày trở lên. Xem trong Nếu DateDiff hàng.
Hiện tại nó không thực sự xóa, nó chỉ hiển thị một thông báo. Để làm cho nó thực sự hoạt động, bạn cần xóa MsgBox ở gần cuối Sub và giữ dòng như thế này:
Case 1: item.Delete
Bạn có thể muốn xem hai bài đăng trên diễn đàn này để tìm hiểu ...