Событие 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
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.