'Option Explicit Sub CUSTOM_Subject() 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, "xDATEx", Format(Date - 1, "dd/mm/yyyy")) .Subject = xNewSubject .Save End With End If Next End Sub Sub DAILY_CUSTOM() Dim strFind, strReplace As String Dim objInspectors As Outlook.Inspectors Dim objInspector As Outlook.Inspector Dim objMail As Outlook.MailItem Dim objMailDocument As Word.Document ' Dim objSubject As Word.Document Dim objSubject As String 'Enter the specific text ' strFind = InputBox("Enter the text for find: (Case Sensitive)") ' strReplace = InputBox("Enter the text for replacement: (Case Sensitive)") strFind = "xDATEx" 'strFind = "xDATEx" strReplace = "Format(Date - 1, "dd/mm/yyyy")" 'strReplace = "Format(Date - 1, "dd/mm/yyyy")" If Trim(strFind) <> "" Then Set objInspectors = Outlook.Application.Inspectors For Each objInspector In objInspectors If objInspector.CurrentItem.Class = olMail Then If objInspector.EditorType = olEditorWord Then Set objMail = objInspector.CurrentItem Set objMailDocument = objMail.GetInspector.WordEditor 'Find & replace specific text With objMailDocument.Content.Find .ClearFormatting .Text = strFind .Replacement.ClearFormatting .Replacement.Text = strReplace .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = True .MatchWholeWord = False .Execute Replace:=wdReplaceAll End With objMail.Save End If End If Next 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, strFind, strReplace) .Subject = xNewSubject .Save End With End If Next MsgBox "Completed!", vbInformation + vbOKOnly End If End Sub Sub DAILY_CUSTOM_BODY() Dim strFind, strReplace As String Dim objInspectors As Outlook.Inspectors Dim objInspector As Outlook.Inspector Dim objMail As Outlook.MailItem Dim objMailDocument As Word.Document ' Dim objSubject As Word.Document Dim objSubject As String 'Enter the specific text ' strFind = InputBox("Enter the text for find: (Case Sensitive)") ' strReplace = InputBox("Enter the text for replacement: (Case Sensitive)") strFind = "xDATEx" strReplace = Format(Date + 3, "dd/mm/yyyy") If Trim(strFind) <> "" Then Set objInspectors = Outlook.Application.Inspectors For Each objInspector In objInspectors If objInspector.CurrentItem.Class = olMail Then If objInspector.EditorType = olEditorWord Then Set objMail = objInspector.CurrentItem Set objMailDocument = objMail.GetInspector.WordEditor 'Find & replace specific text With objMailDocument.Content.Find .ClearFormatting .Text = strFind .Replacement.ClearFormatting .Replacement.Text = strReplace .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = True .MatchWholeWord = False .Execute Replace:=wdReplaceAll End With objMail.Save End If End If Next MsgBox "Completed!", vbInformation + vbOKOnly End If End Sub