Cách chạy nhanh một quy tắc cụ thể trong tất cả các thư mục thư với Outlook VBA

Chia sẻ ngay bây giờ:

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 với Outlook VBA

Nhanh chóng chạy một quy tắc cụ thể trong tất cả các thư mục thư

  1. Ở nơi đầu tiên, starchương trình Outlook của bạn.
  2. Sau đó, trong cửa sổ Outlook chính, nhấn các nút phím “Alt + F11”.
  3. 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.
  4. 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

Mã VBA - Chạy một quy tắc cụ thể trong tất cả các thư mục thư

  1. 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.
  2. 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.Chạy hoàn thành

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

Chia sẻ ngay bây giờ:

Được đóng lại.