Theo mặc định, mỗi lần bạn chỉ có thể chạy quy tắc trong một thư mục. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách sử dụng một đoạn mã VBA để chạy một quy tắc cụ thể trong tất cả các thư mục thư.
Outlook cho phép người dùng chạy quy tắc theo cách thủ công. Bạn chỉ cần truy cập hộp thoại “Quy tắc và Cảnh báo” và nhấn nút “Chạy quy tắc ngay bây giờ”. Trong hộp thoại tiếp theo, hãy chọn một quy tắc cụ thể và chọn một thư mục mà bạn muốn chạy quy tắc này. Tuy nhiên, nếu bạn muốn chạy nhanh một quy tắc trong tất cả các thư mục thư, bạn có thể sử dụng mã VBA sau.

Nhanh chóng chạy một quy tắc cụ thể trong tất cả các thư mục thư
- Ở nơi đầu tiên, starchương trình Outlook của bạn.
- Sau đó, trong cửa sổ Outlook chính, nhấn các nút phím “Alt + F11”.
- Tiếp theo, trong cửa sổ “Microsoft Visual Basic for Applications” mới xuất hiện, bạn nên mở một mô-đun không sử dụng.
- Sau đó, sao chép mã VBA bên dưới vào cửa sổ mô-đun này. Ngoài ra, bạn nên thay đổi một số dòng dựa trên trường hợp của riêng bạn, chẳng hạn như tên quy tắc.
Sub RunSpecificRule_AllMailFolders()
Dim objStores As Outlook.Stores
Dim objStore As Outlook.Store
Dim objPSTFile As Outlook.Folder
Dim objFolders As Outlook.folders
Dim objFolder As Object
Set objStores = Outlook.Application.Session.Stores
'Process all Outlook PST files in your Outlook
For Each objStore In objStores
Set objPSTFile = objStore.GetRootFolder
For Each objFolder In objPSTFile.folders
Call ProcessFolders(objFolder)
Next
Next
MsgBox "Complete!", vbExclamation + vbOKOnly, "Run Rule "
End Sub
Sub ProcessFolders(ByVal objCurrentFolder As Outlook.Folder)
Dim objRules As Outlook.Rules
Dim objRule As Outlook.Rule
Dim objSubfolder As Outlook.Folder
Set objRules = Outlook.Application.Session.DefaultStore.GetRules
'Change the rule name as per your actual case
Set objRule = objRules.Item("Move Mails to Temp")
On Error Resume Next
'Only work on non-empty Mail folder
If objCurrentFolder.Items.count > 0 And objCurrentFolder.DefaultItemType = olMailItem Then
With objRule
.Enabled = True
.Execute ShowProgress:=True, Folder:=objCurrentFolder, IncludeSubfolders:=True
End With
End If
'Process subfolders recursively
If objCurrentFolder.folders.count > 0 Then
For Each objSubfolder In objCurrentFolder.folders
Call ProcessFolders(objSubfolder)
Next
End If
End Sub
- Sau đó, bạn nên kiểm tra cài đặt macro Outlook của mình, đảm bảo rằng macro được cho phép.
- Cuối cùng bạn có thể có một thử.
- Chỉ cần nhấp vào chương trình con “RunSpecificRule_AllMailFolders”.
- Sau đó nhấn nút phím F5 để kích hoạt mã này.
- Tiếp theo macro sẽ chạy ngay lập tức.
- Sau khi hoàn thành, bạn sẽ nhận được một thông báo, giống như ảnh chụp màn hình sau. Nó đề cập đến quy tắc đã kết thúc.
Coi chừng Macro độc hại
Như chúng ta đã biết, các email độc hại ngày càng trở nên tràn lan. Những email như vậy thường chứa các macro độc hại. Do đó, nếu bạn đặt mức bảo mật macro Outlook của mình ở mức thấp, bạn phải cẩn thận với vi-rút và phần mềm độc hại ẩn. Ngoài ra, thật khôn ngoan khi nắm giữ một công cụ sửa lỗi PST mạnh mẽ, chẳng hạn như DataNumen Outlook Repair. Nó có thể sửa chữa PST tệp và trích xuất dữ liệu tối đa cho bạn mà không phải đổ mồ hôi.
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 phục hồi 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

