Link to home
Start Free TrialLog in
Avatar of martinzima
martinzimaFlag for United Kingdom of Great Britain and Northern Ireland

asked on

Outlook No Subject Warning Stops Working

Hi,

I copied the below code into the "ThisOutlookSession" and it works fine until I reboot outlook. When I check the code after the reboot, Outlook has moved it into "Module1" and stops running the code (i.e. does not warn me before I send an email without a subject).

Can anyone please help.

Thanks,
Martin
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
 
Dim m As Variant
Dim strBody As String
Dim strSubject As String
Dim intIn As Long
Dim intAttachCount As Integer, intStandardAttachCount As Integer
 
On Error GoTo handleError
 
    'Edit the following line if you have a signature on your email that includes images or other files. Make    intStandardAttachCount equal the number of files in your signature.
    intStandardAttachCount = 0
 
    strBody = LCase(Item.Body)
    strSubject = Item.Subject
 
    intIn = InStr(1, strBody, "original message")
 
    If intIn = 0 Then intIn = Len(strBody)
 
    intIn = InStr(1, Left(strBody, intIn), "attach")
 
    intAttachCount = Item.Attachments.Count
 
    If intIn > 0 And intAttachCount <= intStandardAttachCount Then
        m = MsgBox("It appears that you mean to send an attachment," & vbCrLf & "but there is no attachment to this message." & vbCrLf & vbCrLf & "Do you still want to send?", vbQuestion + vbYesNo + vbMsgBoxSetForeground)
 
        If m = vbNo Then Cancel = True
    
    End If
 
    If Len(Trim(strSubject)) = 0 Then
            If MsgBox("Subject is Empty. Are you sure you want to send the Mail?", vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Check for Subject") = vbNo Then
                    Cancel = True
            End If
    End If
 
handleError:
 
    If Err.Number <> 0 Then
        MsgBox "Outlook Attachment Reminder Error: " & Err.Description, vbExclamation, "Outlook Attachment Reminder Error"
 
    End If
 
End Sub

Open in new window

Avatar of Robin Human
Robin Human
Flag of South Africa image

That will be because "ThisOutlookSession" refers only to the session that you have open at the time; if you close outlook that will close the session, and future sessions will not run the script.
You will need to set it to run in all sessions, but I'm not sure where that is...
ASKER CERTIFIED SOLUTION
Avatar of David Lee
David Lee
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of martinzima

ASKER

Think the code file was corrupt. I copied the code back into ThisOutlookSession and it asked me if I wanted to save VbaProject.OTM, I restarted Outlook a few times but it seems to work OK.

SO NOTE TO READERS:
The code I posted should work straight away, but if it stops, re-copy it to "ThisOutlookSession", reboot outlook and check if it works.

Thanks,
Martin