Skip to main content

如何在Outlook中一次性打開所有未讀郵件?

Author: Xiaoyang Last Modified: 2025-05-12

如果您的Outlook收件匣中有許多未讀郵件,您要如何快速地一次性打開並閱讀所有郵件呢?

使用VBA代碼打開特定收件匣或其他文件夾中的所有未讀郵件


使用VBA代碼打開特定收件匣或其他文件夾中的所有未讀郵件

以下的VBA代碼可以幫助您一次性打開收件匣或特定文件夾中的所有未讀郵件,請按照以下步驟操作:

1. 首先,您應該選擇一個想要打開所有未讀郵件的文件夾。

doc open all unread eamils 1

2. 接著按下「ALT + F11」鍵以打開「Microsoft Visual Basic for Applications」窗口。

3. 然後點擊「插入」>「模組」,將以下代碼複製並粘貼到打開的空白模組中,參見截圖:

VBA代碼:打開特定文件夾中的所有未讀郵件

Sub OpenAllUnreadEmails()
Dim xFolders As Outlook.Folders
Dim xFolder As Outlook.Folder
Dim xUnreadEmailCount As Long
On Error Resume Next
xUnreadEmailCount = 0
Set xFolders = Application.ActiveExplorer.CurrentFolder.Folders
Call OperatingFolders(Application.ActiveExplorer.CurrentFolder, xUnreadEmailCount)
For Each xFolder In xFolders
    Call OperatingFolders(xFolder, xUnreadEmailCount)
Next
MsgBox "Open " & xUnreadEmailCount & " unread emails successfully!", vbExclamation + vbOKOnly, "Kutools for Outlook"
End Sub
Sub OperatingFolders(ByVal xCurrentFld As Outlook.Folder, UnreadEmailCount As Long)
Dim xItem As Object
Dim xMailItem As Outlook.MailItem
Dim xSubFolder As Outlook.Folder
On Error Resume Next
If xCurrentFld.DefaultItemType = olMailItem Then
    For Each xItem In xCurrentFld.Items
        If xItem.Class = olMail Then
            Set xMailItem = xItem
            If xMailItem.UnRead = True Then
                xMailItem.Display
                UnreadEmailCount = UnreadEmailCount + 1
            End If
        End If
    Next
End If
If xCurrentFld.Folders.Count > 0 Then
    For Each xSubFolder In xCurrentFld.Folders
        Call OperatingFolders(xSubFolder, UnreadEmailCount)
    Next
End If
End Sub
doc open all unread eamils 2

4. 接著,按下「F5」鍵來運行此代碼,指定文件夾中的所有未讀郵件將立即被打開,最後會彈出一個提示框,告知已打開的未讀郵件數量,參見截圖:

doc open all unread eamils 3

便簽:此代碼不適用於會議郵件。