Я нашел другой поток SO, в котором говорится, что вы не можете изменить тему сообщения, не открыв его сначала.Мы можем использовать ActiveInspector, чтобы получить дескриптор элемента после его отображения.Тогда мы можем изменить его, сохранить и закрыть.Я добавил проверку, чтобы увидеть, действительно ли объект длиннее 11 символов, прежде чем мы попытаемся его усечь.
Попробуйте это:
Public Sub ChangeSubjectForward(ByRef Item As Outlook.MailItem)
Debug.Print Now ' This shows you when the code runs
If Len(Item.Subject) > 11 Then
Debug.Print "Subject is too long. Trimming..." ' This shows that we tried to truncate.
Item.Display 'Force the pop-up
Dim thisInspector As Inspector
Set thisInspector = Application.ActiveInspector
Set Item = thisInspector.CurrentItem ' Get the handle from the Inspector
Item.Subject = Right$(Item.Subject, 11)
Item.Save
Item.Close
End If
End Sub