Updating email subject in Outlook VBA
<p>I am trying to create a button-controlled macro that would change the topic of an email message. Following <a href="https://stackoverflow.com/questions/15476986/working-with-current-open-email">this thread</a> I've managed to came up with this:</p>

<pre><code>Public Sub Confidential()

Dim Item As Outlook.MailItem
Dim oInspector As Inspector
Dim strSubject As String

Set oInspector = Application.ActiveInspector
If oInspector Is Nothing Then
    Set Item = Application.ActiveExplorer.Selection.Item(1)
Else
   Set Item = oInspector.CurrentItem
End If

strSubject = Item.Subject

' Remove previous Confidential and Legally Privileged
strSubject = Replace(strSubject, "Confidential and Legally Privileged ", "")

' Prefix subject with Confidential and Legally Privileged
strSubject = "Confidential and Legally Privileged " &amp; strSubject

' Set the message subject
Item.Subject = strSubject


Set Item = Nothing
Set oInspector = Nothing


End Sub
</code></pre>

<p>The IF statement is my attempt to cover the bases: user can either edit the email in the pop-up window, when the ActiveInpector is set or user can edit it in the <a href="https://www.webucator.com/tutorial/learn-microsoft-outlook/the-outlook-2013-interface/overview-of-the-outlook-interface-reading.cfm" rel="nofollow noreferrer">reading pane</a> - when the ActiveExplorer.Selection is set.</p>

<p>Problem is in the fact that while in the first case the macro works as expected, in the second the subject is not changed (even while I can see it changing while debugging the code). What is even more interesting if the message is selected but not edited (i.e. user hasn't clicked "reply" button) the macro works fine changing the topic in the message list.</p>

<p>Now, I've found <a href="https://stackoverflow.com/questions/1785508/in-outlook-vba-how-can-i-change-the-subject-so-it-changes-the-subject-in-the-ex">this thread</a> but a) it s over 6 years old and b) points to forum that doesn't exist anymore. As suggested in it, I've tried <code>Item.Save</code> method, but it doesn't seem to do anything except closing the edited message with original subject.</p>