Событие MailItem.BeforeDelete (Outlook)

Происходит перед удалением элемента (который является экземпляром родительского объекта).

Синтаксис

expression. BeforeDelete (Item, Cancel)

Выражение Переменная, представляющая объект MailItem .

Параметры

Имя Обязательный или необязательный Тип данных Описание
Элемент Обязательный Object Удаляемый элемент.
Отмена Обязательный Boolean Значение false при возникновении события. Если процедура события задает этому аргументу значение True, операция не завершается и элемент не удаляется.

Замечания

Чтобы это событие срабалось при удалении сообщения электронной почты, списка рассылки, записи в журнале, задачи, контакта или публикации с помощью действия, инспектор должен быть открыт.

Событие возникает каждый раз при удалении элемента.

Пример

В следующем примере Visual Basic для приложений (VBA) пользователю предлагается удалить открытый элемент. Для запуска этого примера необходимо иметь открытый элемент электронной почты, который можно удалить. Если нажать кнопку Нет, элемент не будет удален. Если это событие отменено, Microsoft Outlook отобразит сообщение об ошибке. Поэтому необходимо записать это событие в коде. Один из способов этого показан ниже. Пример кода должен быть помещен в модуль класса, например ThisOutlookSession, и процедура должна быть вызвана DeleteMail() , прежде чем процедура события может быть вызвана Outlook.

Public WithEvents myItem As Outlook.MailItem 
 
 
 
Public Sub DeleteMail() 
 
 Const strCancelEvent = "Application-defined or object-defined error" 
 
 On Error GoTo ErrHandler 
 
 Set myItem = Application.ActiveInspector.CurrentItem 
 
 myItem.Delete 
 
 Exit Sub 
 
 
 
ErrHandler: 
 
 MsgBox Err.Description 
 
 If Err.Description = strCancelEvent Then 
 
 MsgBox "The event was cancelled." 
 
 End If 
 
 'If you want to execute the next instruction 
 
 Resume Next 
 
 'Otherwise it will finish here 
 
End Sub 
 
 
 
Private Sub myItem_BeforeDelete(ByVal Item As Object, Cancel As Boolean) 
 
 'Prompts the user before deleting an item 
 
 Dim strPrompt As String 
 
 
 
 'Prompt the user for a response 
 
 strPrompt = "Are you sure you want to delete the item?" 
 
 If MsgBox(strPrompt, vbYesNo + vbQuestion) = vbNo Then 
 
 'Don't delete the item 
 
 Cancel = True 
 
 End If 
 
End Sub

См. также

Объект MailItem

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.