如何在 Outlook 中將未讀郵件加入「我的最愛」資料夾?
有時未讀電子郵件可能混雜在大量郵件中,即使 Outlook 已標示未讀郵件數量(例如)收件匣(5)),您仍難以立即找出它們。其實,只要將所有未讀郵件集中到「我的最愛」資料夾,就能讓您的工作更便利、更快速!
以下操作指引將協助您將所有未讀郵件集中至「未讀郵件」資料夾,並把該資料夾加入我的最愛以便快速存取。
步驟 1:按一下導航中的郵件,即可切換至郵件檢視畫面。
步驟 2:建立新的搜尋資料夾:
- 在 Outlook 2010/2013 中,請點選資料夾頁籤中新增群組內的新增搜尋資料夾按鈕。
- 在 Outlook 2007 中,點選檔案> 新增> 搜尋資料夾。

其實還有另一種方法可建立新的搜尋資料夾:在導航窗格中的搜尋資料夾上按一下滑鼠右鍵,然後於快捷選單中點選新增搜尋資料夾。

此方法適用於 Microsoft Outlook 2007、2010 與 2013 所有版本。
步驟 2:在「新增搜尋資料夾」對話方塊中,選取並反白標示未讀郵件項目,然後點擊確定。

現在已建立一個未讀郵件資料夾,並顯示於導航窗格中。所有未讀郵件都會自動集中至此資料夾;一旦開啟某封未讀郵件,該郵件便會立即從「未讀郵件」資料夾中移除!
步驟 3:在未讀郵件資料夾上按一下滑鼠右鍵,然後於快捷選單中點選在「我的最愛」中顯示項目。

現在「未讀郵件」資料夾已複製,並新增至導航頂端的「我的最愛」中。

提示:若您想將所有帳戶的未讀郵件全部加入同一個資料夾,可依照下列步驟操作:
1. 按下 Alt + F11 鍵,開啟 Microsoft Visual Basic for Applications 視窗。在專案窗格中,依序點選 Microsoft Outlook 物件>ThisOutlookSession,並將下方程式碼貼上至右側編輯區。
Public WithEvents OlExplprer As Outlook.Explorer
Public WithEvents OlMailItem As Outlook.MailItem
Dim xSelMail As MailItem
Private Sub Application_NewMail()
AddAllAccountsUnreadMailsToAFolder
IniEvent
End Sub
Public Sub Initialize_handler()
Set OlExplprer = Application.ActiveExplorer
If OlExplprer.Selection.Count <> 0 Then
Set OlMailItem = OlExplprer.Selection.Item(1)
End If
End Sub
Private Sub OlExplprer_BeforeFolderSwitch(ByVal NewFolder As Object, Cancel As Boolean)
Dim xOlApp As Outlook.Application
Dim xNameSpace As NameSpace
Dim xMailItem, xSelMail As MailItem
Dim xTargetFld As Folder
On Error Resume Next
Set xOlApp = Outlook.Application
Set xNameSpace = xOlApp.GetNamespace("MAPI")
If NewFolder.Name = "Unread Mail" Then
For Each xMailItem In NewFolder.Items
If xMailItem.UnRead = False Then
xMailItem.Delete
End If
Next
Else
For Each xTargetFld In xNameSpace.Folders.Item(1).Folders
If xTargetFld.Name = "Unread Mail" Then
For Each xMailItem In xTargetFld.Items
If (OlExplprer.Selection.Count <> 0) Then
Set xSelMail = OlExplprer.Selection.Item(1)
If xSelMail.UnRead Then
xSelMail.UnRead = False
End If
End If
Next
End If
Next
End If
Cancel = False
End Sub
Private Sub OlExplprer_FolderSwitch()
Dim xOlApp As Outlook.Application
Dim xNameSpace As NameSpace
Dim xMailItem As MailItem
Dim xAccountFld, xTargetFld, xSubFolder As MAPIFolder
Dim xObjItem As Object
On Error Resume Next
Set xOlApp = Outlook.Application
Set xNameSpace = xOlApp.GetNamespace("MAPI")
Refresh
If (OlExplprer.CurrentFolder.Name <> "Unread Mail") Then
For Each xTargetFld In xNameSpace.Folders.Item(1).Folders
If xTargetFld.Name = "Unread Mail" Then
For Each xMailItem In xTargetFld.Items
If xMailItem.UnRead = False Then
For Each xAccountFld In xNameSpace.Folders
For Each xSubFolder In xAccountFld.Folders
If (xSubFolder.Name <> "Deleted Items") And (xSubFolder.Name <> "Drafts") And (xSubFolder.Name <> "Outbox") And (xSubFolder.Name <> "Junk E-mail") Then
For Each xObjItem In xSubFolder.Items
If xObjItem.Class = olMail Then
If (xObjItem.Subject = xMailItem.Subject) And (xObjItem.SenderName = xMailItem.SenderName) And _
(xObjItem.Body = xMailItem.Body) And (xObjItem.Attachments.Count = xMailItem.Attachments.Count) And _
(xObjItem.SentOn = xMailItem.SentOn) Then
xObjItem.UnRead = False
End If
End If
Next
End If
Next
Next
End If
Next
End If
Next
End If
End Sub
Private Sub OlExplprer_SelectionChange()
Dim xOlApp As Outlook.Application
Dim xNameSpace As NameSpace
On Error Resume Next
Set xOlApp = Outlook.Application
Set xNameSpace = xOlApp.GetNamespace("MAPI")
If (OlExplprer.CurrentFolder.Name = "Unread Mail") And (OlExplprer.Selection.Count <> 0) Then
SelUnreadMailFld OlExplprer.CurrentFolder.Items, xNameSpace.Folders
Else
If (OlExplprer.CurrentFolder.Name <> "Deleted Items") And (OlExplprer.CurrentFolder.Name <> "Drafts") And _
(OlExplprer.CurrentFolder.Name <> "Outbox") And (OlExplprer.CurrentFolder.Name <> "Junk E-mail") Then
SelOtherFld xNameSpace.Folders.Item(1).Folders
End If
End If
End Sub
Sub SelUnreadMailFld(EMails As Outlook.Items, Flds As Folders)
Dim xMailItem As MailItem
Dim xAccountFld, xSubFolder As Folder
Dim xObjItem As Object
On Error Resume Next
For Each xMailItem In EMails 'OlExplprer.CurrentFolder.Items
If xMailItem.UnRead = False Then
For Each xAccountFld In Flds
For Each xSubFolder In xAccountFld.Folders
If (xSubFolder.Name <> "Deleted Items") And (xSubFolder.Name <> "Drafts") And (xSubFolder.Name <> "Outbox") And (xSubFolder.Name <> "Junk E-mail") Then
For Each xObjItem In xSubFolder.Items
If xObjItem.Class = olMail Then
If (xObjItem.Subject = xMailItem.Subject) And (xObjItem.SenderName = xMailItem.SenderName) And _
(xObjItem.Body = xMailItem.Body) And (xObjItem.Attachments.Count = xMailItem.Attachments.Count) And _
(xObjItem.SentOn = xMailItem.SentOn) Then
If xObjItem.UnRead Then
xObjItem.UnRead = False
End If
End If
End If
Next
End If
Next
Next
End If
Next
End Sub
Sub SelOtherFld(Flds As Folders)
Dim xSelItem, xMailItem As MailItem
Dim xTargetFld As Folder
On Error Resume Next
If OlExplprer.Selection.Count <> 0 Then
Set xSelItem = OlExplprer.Selection.Item(1)
If xSelItem.UnRead = False Then
For Each xTargetFld In Flds
If xTargetFld.Name = "Unread Mail" Then
For Each xMailItem In xTargetFld.Items
If (xSelItem.Subject = xMailItem.Subject) And (xSelItem.SenderName = xMailItem.SenderName) And _
(xSelItem.Body = xMailItem.Body) And (xSelItem.Attachments.Count = xMailItem.Attachments.Count) And _
(xSelItem.SentOn = xMailItem.SentOn) Then
xMailItem.UnRead = False
End If
Next
End If
Next
End If
End If
End Sub
Sub Refresh()
Dim xOlApp As Outlook.Application
Dim xNameSpace As NameSpace
Dim xTargetFld As MAPIFolder
Dim xAllUnreadMails As Integer
On Error Resume Next
Set xOlApp = Outlook.Application
Set xNameSpace = xOlApp.GetNamespace("MAPI")
xAllUnreadMails = AllUnreadMails()
For Each xTargetFld In xNameSpace.Folders.Item(1).Folders
If xTargetFld.Name = "Unread Mail" Then
If xAllUnreadMails <> xTargetFld.Items.Count Then
AddAllAccountsUnreadMailsToAFolder
Exit For
End If
End If
Next
End Sub
Function AllUnreadMails()
Dim xOlApp As Outlook.Application
Dim xNameSpace As NameSpace
Dim xAllUnreadMails As Integer
On Error Resume Next
Set xOlApp = Outlook.Application
Set xNameSpace = xOlApp.GetNamespace("MAPI")
xAllUnreadMails = 0
For Each xFolders In xNameSpace.Folders
For Each xSubFolder In xFolders.Folders
If xSubFolder.Name <> "Unread Mail" Then
If (xSubFolder.Name <> "Deleted Items") And (xSubFolder.Name <> "Drafts") And (xSubFolder.Name <> "Outbox") And (xSubFolder.Name <> "Junk E-mail") Then
For Each xObjItem In xSubFolder.Items
If xObjItem.Class = olMail Then
If xObjItem.UnRead Then
xAllUnreadMails = xAllUnreadMails + 1
End If
End If
Next
End If
End If
Next
Next
AllUnreadMails = xAllUnreadMails
End Function

2. 接著插入一個新模組,並將下方程式碼貼入該模組的指令碼中。
Public Sub AddAllAccountsUnreadMailsToAFolder()
Dim xOlApp As Outlook.Application
Dim xNameSpace As NameSpace
Dim xFolders, xSubFolder As MAPIFolder
Dim xObjItem As Object
Dim xDelFld As Folder
Dim xUnreadMailFld, xOldUnreadMailFld As Folder
Dim xCopiedItem, xMailItem As MailItem
On Error Resume Next
Set xOlApp = Outlook.Application
Set xNameSpace = xOlApp.GetNamespace("MAPI")
For Each xOldUnreadMailFld In xNameSpace.Folders.Item(1).Folders
If xOldUnreadMailFld.Name = "Unread Mail" Then
xOldUnreadMailFld.Delete
Exit For
End If
Next
For Each xDelFld In xNameSpace.Folders.Item(1).Folders
If xDelFld.Name = "Deleted Items" Then
For Each xMailItem In xDelFld.Items
xMailItem.Delete
Next
For Each xSubFolder In xDelFld.Folders
'For i = xDelFld.Folders.Count To 1 Step -1
xSubFolder.Delete
Next
End If
Next
Set xUnreadMailFld = xNameSpace.Folders.Item(1).Folders.Add("Unread Mail")
If xUnreadMailFld = nil Then
Exit Sub
End If
For Each xFolders In xNameSpace.Folders
For Each xSubFolder In xFolders.Folders
If xSubFolder.Name <> xUnreadMailFld.Name Then
If (xSubFolder.Name <> "Deleted Items") And (xSubFolder.Name <> "Drafts") And (xSubFolder.Name <> "Outbox") And (xSubFolder.Name <> "Junk E-mail") Then
For Each xObjItem In xSubFolder.Items
If xObjItem.Class = olMail Then
If xObjItem.UnRead Then
Set xCopiedItem = xObjItem.Copy
xCopiedItem.Move xUnreadMailFld
End If
End If
Next
End If
End If
Next
Next
IniEvent
End Sub
Public Sub IniEvent()
Dim xFld As ThisOutlookSession
Set xFld = ThisOutlookSession
xFld.Initialize_handler
End Sub 
3. 執行名為 AddAllAccountsUnreadMailsToAFolder 的程式碼,所有未讀郵件將自動歸整至名為未讀郵件的資料夾中!
從 Outlook 中的一個或多個聯繫人文件夾移除所有重複聯繫人 |
| 有時我們可能會重複新增相同的聯絡人,該如何從一個或多個聯絡人資料夾中快速清除重複項目?此功能可迅速找出所有重複聯絡人,並讓您依指定條件(例如:在一個或多個聯絡人資料夾中比對相同全名或相同電子信箱地址)進行移除或合併,輕鬆整理您的聯絡人資料!立即點擊即可享有為期 30 天、功能完整的免費試用!Duplicate Contacts |
![]() |
| Kutools for Outlook:內含數十種實用 Outlook 增益集,未來完整 30 天免費試用,毫無限制。 |
最佳 Office 生產力工具
體驗全新 Kutools for Outlook,內含 100+ 項超強功能!立即點擊下載!
🤖KUTOOLS AI:運用先進 AI 技術,輕鬆處理電子郵件——無論是回覆、摘要、優化、擴充、翻譯還是撰寫郵件,通通一鍵搞定!
📧 郵件自動化:自動答覆(支援 POP 與 IMAP)/預約寄送郵件/寄信時依規則自動抄送密送/自動轉發(高級規則)/自動加入問候語/自動將多收件人郵件拆分為個別訊息……
📨 郵件管理:撤回郵件/依主旨等條件封鎖詐騙郵件/刪除重複郵件/高級搜尋/整合文件夾……
📁 附件專業版:批次儲存/批次解除附加/批次壓縮/自動保存/自動拆離/自動壓縮……
🌟 介面魔法:😊更多精美酷炫表情符號/重要郵件來到時提醒您/最小化 Outlook 而非關閉……
👍 一鍵奇蹟:帶附件全部答復/防釣魚郵件/🕘顯示發送者當前時間時區……
👩🏼🤝👩🏻 聯絡人與行事曆:從選取的郵件中批次新增聯絡人/將聯繫人組拆分為個別群組/移除生日提醒……
用您的慣用語言暢享 Kutools — 完整支援英文、西班牙文、德文、法文、中文等 40 多種語言!
立即一鍵解鎖 Kutools for Outlook!別再等待,馬上下載,全面提升工作效率!


🚀 一鍵下載 — 立即取得所有 Office 增益集
強烈推薦:Kutools for Office(5 合 1)
一鍵下載五個安裝程式,一次完成 — Kutools for Excel、Outlook、Word、PowerPoint 與 Office Tab Pro!立即點擊下載!
- ✅ 一鍵便利:只需一次操作,即可下載全部五個安裝套件!
- 🚀 隨時應對任何 Office 任務:按需安裝所需增益集,立即提升工作效率!
- 🧰 包含:Kutools for Excel/Kutools for Outlook/Kutools for Word/Office Tab Pro/Kutools for PowerPoint
