วิธีเรียกใช้กฎเฉพาะอย่างรวดเร็วในโฟลเดอร์จดหมายทั้งหมดด้วย Outlook VBA

แบ่งปันเลย:

โดยค่าเริ่มต้นคุณสามารถเรียกใช้กฎได้ครั้งละหนึ่งโฟลเดอร์เท่านั้น ในบทความนี้เราจะสอนวิธีใช้โค้ด VBA เพื่อเรียกใช้กฎเฉพาะในโฟลเดอร์อีเมลทั้งหมด

Outlook อนุญาตให้ผู้ใช้เรียกใช้กฎด้วยตนเอง คุณสามารถเข้าถึงกล่องโต้ตอบ“ กฎและการแจ้งเตือน” และกดปุ่ม“ เรียกใช้กฎทันที” ในกล่องโต้ตอบถัดไปให้เลือกกฎเฉพาะและเลือกโฟลเดอร์ที่คุณต้องการเรียกใช้กฎนี้ แต่ถ้าคุณต้องการเรียกใช้กฎในโฟลเดอร์อีเมลทั้งหมดอย่างรวดเร็วคุณสามารถใช้รหัส VBA ต่อไปนี้

เรียกใช้กฎเฉพาะอย่างรวดเร็วในโฟลเดอร์จดหมายทั้งหมดด้วย Outlook VBA

เรียกใช้กฎเฉพาะอย่างรวดเร็วในโฟลเดอร์อีเมลทั้งหมด

  1. ในตอนแรก starโปรแกรม Outlook ของคุณ
  2. จากนั้นในหน้าต่างหลักของ Outlook ให้กดปุ่ม "Alt + F11"
  3. ถัดไปในหน้าต่าง“ Microsoft Visual Basic for Applications” ที่ปรากฏขึ้นใหม่คุณควรเปิดโมดูลที่ไม่ได้ใช้งาน
  4. จากนั้นคัดลอกโค้ด VBA ด้านล่างลงในหน้าต่างโมดูลนี้ นอกจากนี้คุณควรเปลี่ยนบางบรรทัดตามกรณีของคุณเองเช่นชื่อกฎ
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

รหัส VBA - เรียกใช้กฎเฉพาะในโฟลเดอร์อีเมลทั้งหมด

  1. หลังจากนั้นคุณควรตรวจสอบการตั้งค่าแมโคร Outlook ของคุณเพื่อให้แน่ใจว่าอนุญาตให้ใช้แมโครได้
  2. ในที่สุดคุณสามารถลอง
  • เพียงคลิกเข้าไปในรูทีนย่อย“ RunSpecificRule_AllMailFolders”
  • จากนั้นกดปุ่ม F5 เพื่อเรียกใช้รหัสนี้
  • ถัดไปมาโครจะทำงานทันที
  • หลังจากเสร็จสิ้นคุณจะได้รับข้อความดังเช่นภาพหน้าจอต่อไปนี้ หมายถึงกฎเสร็จสิ้นแล้วเรียกใช้เสร็จสิ้น

ระวังมาโครที่เป็นอันตราย

อย่างที่เราทราบกันดีว่าอีเมลที่เป็นอันตรายได้ระบาดมากขึ้นเรื่อย ๆ อีเมลดังกล่าวมักมีมาโครที่เป็นอันตราย ดังนั้นหากคุณตั้งค่าระดับความปลอดภัยของแมโคร Outlook ไว้ที่ระดับต่ำคุณต้องระวังไวรัสและมัลแวร์ที่ซ่อนอยู่ นอกจากนี้ควรระมัดระวังในการใช้เครื่องมือแก้ไข PST ที่มีประสิทธิภาพเช่น DataNumen Outlook Repair. มันสามารถที่จะ ซ่อม PST ไฟล์และดึงข้อมูลสูงสุดสำหรับคุณโดยไม่ต้องเสียเหงื่อ

บทนำผู้เขียน:

Shirley Zhang เป็นผู้เชี่ยวชาญด้านการกู้คืนข้อมูลใน DataNumen, Inc. ซึ่งเป็นผู้นำระดับโลกด้านเทคโนโลยีการกู้คืนข้อมูล ได้แก่ กู้คืน mdf และผลิตภัณฑ์ซอฟต์แวร์ซ่อมแซมแนวโน้ม ดูข้อมูลเพิ่มเติมได้ที่ wwwdatanumenด้วย.

แบ่งปันเลย:

ความเห็นถูกปิด