ไปยังเนื้อหาหลัก

จะทำเครื่องหมายอีเมลที่ยังไม่ได้อ่านที่เก่ากว่าวันที่ระบุว่าอ่านโดยอัตโนมัติใน Outlook ได้อย่างไร

หากมีอีเมลที่ยังไม่ได้อ่านหลายฉบับในโฟลเดอร์กล่องขาเข้าของคุณโดยปกติคุณสามารถใช้คุณสมบัติทำเครื่องหมายทั้งหมดเป็นอ่านเพื่อทำเครื่องหมายอีเมลที่ยังไม่ได้อ่านทั้งหมดเป็นอีเมลที่อ่านแล้วด้วยตนเอง แต่คุณเคยพยายามทำเครื่องหมายอีเมลที่ยังไม่ได้อ่านซึ่งเก่ากว่าวันที่ระบุว่าอ่านโดยอัตโนมัติใน Outlook โดยไม่ต้องตั้งค่าด้วยตนเองทุกครั้งหรือไม่?

ทำเครื่องหมายอีเมลที่ยังไม่ได้อ่านที่เก่ากว่าวันที่ระบุว่าอ่านโดยอัตโนมัติด้วยรหัส VBA


ทำเครื่องหมายอีเมลที่ยังไม่ได้อ่านที่เก่ากว่าวันที่ระบุว่าอ่านโดยอัตโนมัติด้วยรหัส VBA

หากต้องการทำเครื่องหมายอีเมลที่ยังไม่ได้อ่านทั้งหมดที่เก่ากว่าวันที่ระบุว่าอ่านแล้วโดยอัตโนมัติรหัส VBA ต่อไปนี้สามารถช่วยคุณได้:

1. กด ALT + F11 คีย์เพื่อเปิด Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

2. ใน Microsoft Visual Basic สำหรับแอปพลิเคชัน ดับเบิลคลิก นี้OutlookSession จาก โครงการ 1 (VbaProject.O ™) บานหน้าต่างเพื่อเปิดโหมดจากนั้นคัดลอกและวางโค้ดด้านล่างลงในโมดูลเปล่า

รหัส VBA: ทำเครื่องหมายอีเมลที่ยังไม่ได้อ่านโดยอัตโนมัติที่เก่ากว่าวันที่ระบุว่าอ่านแล้ว:

Private Sub Application_Startup()
        Call MarkOldUnreadEmailsAsRead
    End Sub
    Private Sub MarkOldUnreadEmailsAsRead()
    Dim xInboxFld As Outlook.Folder
    Dim xAccount As Account
    On Error GoTo L1
    For Each xAccount In Outlook.Application.Session.Accounts
        Set xInboxFld = xAccount.DeliveryStore.GetDefaultFolder(olFolderInbox)
        Call Processfolders(xInboxFld)
    Next xAccount
L1:     Exit Sub
    End Sub
    Private Sub Processfolders(ByVal InboxFld As Outlook.Folder)
    Dim xItems As Outlook.Items
    Dim i As Long
    Dim xSubFld As Outlook.Folder
    On Error Resume Next
    Set xItems = InboxFld.Items
    For i = 1 To xItems.Count
        If DateDiff("d", xItems(i).ReceivedTime, Now) >= 15 Then
           If xItems(i).UnRead = True Then
              xItems(i).UnRead = False
              xItems(i).Save
           End If
        End If
    Next
    If InboxFld.Folders.Count > 0 Then
       For Each xSubFld In InboxFld.Folders
           Call Processfolders(xSubFld)
       Next
    End If
End Sub

หมายเหตุ: ในโค้ดด้านบนคุณสามารถเปลี่ยนจำนวนวันภายในสคริปต์นี้: ถ้า DateDiff ("d", xItems (i) .ReceivedTime, Now)> = 15 แล้วก็ ตามความต้องการของคุณเอง

3. จากนั้นบันทึกและปิดหน้าต่างรหัสนี้ตั้งแต่นั้นมาทุกครั้งที่คุณเปิด Outlook อีเมลที่ยังไม่ได้อ่านทั้งหมดซึ่งเก่ากว่าวันที่กำหนดไว้ล่วงหน้าจะถูกทำเครื่องหมายว่าอ่านโดยอัตโนมัติในครั้งเดียว

หมายเหตุ: รหัสนี้ใช้ได้กับบัญชีข้อมูลเริ่มต้นเท่านั้น


สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน

Kutools สำหรับ Outlook - คุณสมบัติอันทรงพลังมากกว่า 100 รายการเพื่อเติมพลังให้กับ Outlook ของคุณ

📧 การทำงานอัตโนมัติของอีเมล: ไม่อยู่ที่สำนักงาน (ใช้ได้กับ POP และ IMAP)  /  กำหนดการส่งอีเมล  /  Auto CC/BCC ตามกฎเมื่อส่งอีเมล  /  ส่งต่ออัตโนมัติ (กฎขั้นสูง)   /  เพิ่มคำทักทายอัตโนมัติ   /  แบ่งอีเมลผู้รับหลายรายออกเป็นข้อความส่วนตัวโดยอัตโนมัติ ...

📨 การจัดการอีเมล์: เรียกคืนอีเมลได้อย่างง่ายดาย  /  บล็อกอีเมลหลอกลวงตามหัวเรื่องและอื่นๆ  /  ลบอีเมลที่ซ้ำกัน  /  การค้นหาขั้นสูง  /  รวมโฟลเดอร์ ...

📁 ไฟล์แนบโปรบันทึกแบทช์  /  การแยกแบทช์  /  การบีบอัดแบบแบตช์  /  บันทึกอัตโนมัติ   /  ถอดอัตโนมัติ  /  บีบอัดอัตโนมัติ ...

🌟 อินเตอร์เฟซเมจิก: 😊อีโมจิที่สวยและเจ๋งยิ่งขึ้น   /  เพิ่มประสิทธิภาพการทำงาน Outlook ของคุณด้วยมุมมองแบบแท็บ  /  ลดขนาด Outlook แทนที่จะปิด ...

???? เพียงคลิกเดียวสิ่งมหัศจรรย์: ตอบกลับทั้งหมดด้วยไฟล์แนบที่เข้ามา  /   อีเมลต่อต้านฟิชชิ่ง  /  🕘 แสดงโซนเวลาของผู้ส่ง ...

👩🏼‍🤝‍👩🏻 รายชื่อและปฏิทิน: แบทช์เพิ่มผู้ติดต่อจากอีเมลที่เลือก  /  แบ่งกลุ่มผู้ติดต่อเป็นกลุ่มแต่ละกลุ่ม  /  ลบการแจ้งเตือนวันเกิด ...

เกิน คุณสมบัติ 100 รอการสำรวจของคุณ! คลิกที่นี่เพื่อค้นพบเพิ่มเติม

 

 

Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
How do I modify the code to target a specific folder?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations