MailItem.BeforeAttachmentSave Event (Outlook)

Office 2013 and later

Contribute to this content

Use GitHub to suggest and submit changes. See our guidelines for contributing to VBA documentation.

Occurs just before an attachment is saved.

expression .BeforeAttachmentSave(Attachment, Cancel)

expression A variable that represents a MailItem object.




Data Type





The Attachment to be saved.




(Not used in VBScript). False when the event occurs. If the event procedure sets this argument to True, the save operation is not completed and the attachment is not changed.

This event corresponds to when attachments are saved to the messaging store. The BeforeAttachmentSave event occurs just before an attachment is saved when an item is saved. If a user edits an attachment and then saves those changes, the BeforeAttachmentSave event will not occur at that time; instead it will occur when the item itself is later saved. It also does not occur when the attachment is saved on the hard disk using the SaveAsFile method.

In VBScript, if you set the return value of this function to False, the save operation is cancelled and the attachment is not changed.

This Visual Basic for Applications (VBA) example notifies the user that the user is not allowed to save the attachment. The Cancel argument is set to True to cancel the save operation. The sample code must be placed in a class module such as ThisOutlookSession, and the TestAttachSave() procedure should be called before the event procedure can be called by Microsoft Outlook.

Public WithEvents myItem As Outlook.MailItem 
Private Sub myItem_BeforeAttachmentSave(ByVal myAttachment As Attachment, Cancel As Boolean) 
 MsgBox "You are not allowed to save " & myAttachment.FileName 
 Cancel = True 
End Sub 
Public Sub TestAttachSave() 
 Set myItem = Application.ActiveInspector.CurrentItem 
End Sub