title: Updating email subject in Outlook VBA
body: <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>