Использование Outlook 2016 для Windows (10).Outlook VBA - BeforeDelete не работает
Я пытаюсь написать VBA, чтобы автоматически копировать электронные письма, которые я удаляю в отдельную папку (или, возможно, переписываю «delete» только с копией).
Прежде чем я доберусь до этого момента, предварительный запрос должен получить простой скрипт VBA, созданный для захвата события delete.
Я посмотрел на MSDN и нашел следующий код, который я вставлял в объект «ThisOutlookSession».
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
Однако это не работает. Когда я иду, чтобы удалить элемент (либо нажав клавишу «del» в папке «Входящие», либо открыв элемент и нажав «Удалить» на ленте), элемент перемещается в папку «Удаленные», но я не вижу окно сообщения. Это кажется относительно простым, и я не уверен, что мне не хватает.
Что вызывает запуск элемента DeleteMail? Если это не так, myItem никогда не инициализируется. –