Option Explicit
'=========================================================================
' Prevents Outlook® 2010 to display a no-subject warning message
' (c) Peter Marchert -
http://www.outlook-stuff.com' 2010-07-15 Version 1.0.0
' 2010-07-19 Version 1.0.1
'=========================================================================
Private WithEvents colInspectors As Outlook.Inspectors
Private Sub Application_Startup()
'---------------------------------------------------------------------
' Set a reference to all forms
'---------------------------------------------------------------------
Set colInspectors = Outlook.Inspectors
End Sub
Private Sub colInspectors_NewInspector(ByVal Inspector As Inspector)
'---------------------------------------------------------------------
' This code is running if a form (e. g. an e-mail) will be opened
'---------------------------------------------------------------------
Dim objItem As Object
'---------------------------------------------------------------------
' Skip errors
'---------------------------------------------------------------------
On Error GoTo ExitProc
'---------------------------------------------------------------------
' Set a reference to the open item
'---------------------------------------------------------------------
Set objItem = Inspector.CurrentItem
'---------------------------------------------------------------------
' A new item does not have a received time
'---------------------------------------------------------------------
If Year(objItem.ReceivedTime) = 4501 Then
'-----------------------------------------------------------------
' Check if the subject is empty if an e-mail was created by a
' template with predefined subject.
'-----------------------------------------------------------------
If objItem.Subject = "" Then objItem.Subject = " "
End If
ExitProc:
'---------------------------------------------------------------------
' Delete the reference to the form and to the item
'---------------------------------------------------------------------
Set objItem = Nothing
Set Inspector = Nothing
End Sub
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
On Error Resume Next
'---------------------------------------------------------------------
' If the blank still exists it will now be removed (Outlook®
' will this not recognize)
'---------------------------------------------------------------------
Item.Subject = Trim(Item.Subject)
End Sub
Private Sub Application_Quit()
'---------------------------------------------------------------------
' Delete the reference to the forms
'---------------------------------------------------------------------
Set colInspectors = Nothing
End Sub