(Adapted slightly from Mark Bird's blog.)
In Outlook 2010:
- Click on File > Options > Trust Center > Trust Center Settings > Macro Settings > Enable all macros (read the warning first)
- Click OK twice to save options
- Press Alt-F11
- Expand the project tree on the left, and double-click "ThisOutlookSession"
- Click in the right-hand pane, and paste in the code below
- Restart Outlook again (saving changes when prompted)
Here's the code to paste in:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim m As Variant
Dim strBody 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)
' text-only reply?
intIn = InStr(1, strBody, "original message")
If intIn = 0 Then
' html reply?
intIn = InStr(1, strBody, "from: ")
If intIn = 0 Then intIn = Len(strBody)
Else
intIn = Len(strBody)
End If
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
handleError:
If Err.Number <> 0 Then
MsgBox "Outlook Attachment Reminder Error: " & Err.Description, vbExclamation, "Outlook Attachment Reminder Error"
End If
End Sub
