Skip to main content

如何在Outlook中的郵件或任務內查找並替換主題文字?

Author: Xiaoyang Last Modified: 2025-05-12

在Outlook中,如果有許多郵件主題或任務主題需要替換為指定的文字,當然可以逐一更改,但是否有更快的方法能一次性完成此操作呢?

使用VBA代碼在多封郵件中查找並替換主題文字

使用VBA代碼在多個任務中查找並替換主題文字


使用VBA代碼在多封郵件中查找並替換主題文字

尋找特定文字並將其替換為另一文字於多個郵件主題中,以下VBA代碼可幫助您,請按照以下步驟操作:

1. 選擇要查找並替換主題文字的郵件,然後按住「ALT + F11」鍵打開「Microsoft Visual Basic for Applications」窗口。

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

VBA代碼:在多封郵件中查找並替換主題文字:

Option Explicit
Sub FindAndReplaceInSubject()
Dim xItem As Object
Dim xNewSubject As String
Dim xMailItem As MailItem
Dim xExplorer As Explorer
Dim i As Integer
On Error Resume Next
Set xExplorer = Outlook.Application.ActiveExplorer
For i = xExplorer.Selection.Count To 1 Step -1
    Set xItem = xExplorer.Selection.Item(i)
    If xItem.Class = olMail Then
        Set xMailItem = xItem
        With xMailItem
            xNewSubject = Replace(.Subject, "kte", "Kutools for Excel")
            .Subject = xNewSubject
            .Save
        End With
    End If
Next
End Sub

注意:在上述代碼中:xNewSubject = Replace(.Subject, "kte", "Kutools for Excel"),"kte" 是您想查找的舊文字,而 "Kutools for Excel" 是您想替換的新文字。請根據需要進行修改。

doc replace subjects 1

3. 然後按下「F5」鍵運行此代碼,郵件主題中的特定文字將被替換為您需要的新文字,參見截圖:

doc replace subjects 2

使用VBA代碼在多個任務中查找並替換主題文字

如果您需要在任務中查找並替換主題文字,以下VBA代碼也可以幫助您。

1. 按住「ALT + F11」鍵打開「Microsoft Visual Basic for Applications」窗口。

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

VBA代碼:在所有任務中查找並替換主題文字:

Option Explicit
Sub FindReplaceTextsInAllTaskSubjects()
Dim xPane As NavigationPane
Dim xModule As TasksModule
Dim xGroup As NavigationGroup
Dim xNavFolder As NavigationFolder
Dim xTaskItem As Outlook.TaskItem
Dim i, k As Integer
Dim xFindStr, xReplaceStr As String
Dim xTotalCount As Long
On Error Resume Next
xFindStr = InputBox("Type the words to find:", "Kutools for Outlook", xFindStr)
If Len(Trim(xFindStr)) = 0 Then Exit Sub
xReplaceStr = InputBox("Type the words to replace:", "Kutools for Outlook", xReplaceStr)
If Len(Trim(xReplaceStr)) = 0 Then Exit Sub
xTotalCount = 0
Set xPane = Outlook.Application.ActiveExplorer.NavigationPane
Set xModule = xPane.Modules.GetNavigationModule(olModuleTasks)
Set xGroup = xModule.NavigationGroups.Item(1)
For i = xGroup.NavigationFolders.Count To 1 Step -1
    Set xNavFolder = xGroup.NavigationFolders.Item(i)
    For k = xNavFolder.Folder.Items.Count To 1 Step -1
        Set xTaskItem = xNavFolder.Folder.Items(k)
        If InStr(xTaskItem.Subject, xFindStr) > 0 Then
            xTaskItem.Subject = Replace(xTaskItem.Subject, xFindStr, xReplaceStr)
            xTaskItem.Save
            xTotalCount = xTotalCount + 1
        End If
    Next
Next
MsgBox xTotalCount & " task subjects have been changed!", vbInformation + vbOKOnly, "Kutools for Outlook"
End Sub

3. 然後按下「F5」鍵執行此代碼,會彈出一個提示框,請輸入您想從任務主題中查找的文字,參見截圖:

doc replace subjects 3

4. 點擊「確定」,又會彈出另一個提示框,請輸入您想替換的新文字,參見截圖:

doc replace subjects 4

5. 然後點擊「確定」,會顯示一個對話框告訴您有多少主題已被更改,參見截圖:

doc replace subjects 5

6. 點擊「確定」,任務主題中的舊文字已被替換為新文字,參見截圖:

doc replace subjects 6