Как перехватить задачу Outlook 2013, выполненную без пользовательских скриптов форм - PullRequest
0 голосов
/ 28 июня 2019

У нас Outlook 2013, который теперь поставляется с отключенным пользовательским сценарием формы , и мы не можем повторно включить его (политика компании).Обычный VBA работает нормально.

Мне нужно отправить электронное письмо, когда задача помечена как завершенная.Как я могу получить уведомление, когда задача помечена как завершенная, чтобы я мог отправить электронное письмо?Я могу использовать любое из стандартных событий приложения, но ни одно из них мне не помогает.Спасибо.

Ответы [ 2 ]

1 голос
/ 02 июля 2019

Вы можете использовать событие Items.ItemChange в папке «Задачи» (которое можно получить с помощью Application.Session.GetDefaultFolder(olFolderTasks)).

0 голосов
/ 15 июля 2019

Воспользовавшись руководством, которое дал Дмитрий Стребченко, этот код работает.Публикация для полноты.

Public WithEvents myOlItems As Outlook.Items

Public Sub Initialize_handler()
    Set myOlItems = Application.Session.GetDefaultFolder(olFolderTasks).Items
End Sub

Private Sub myOlItems_ItemChange(ByVal Item As Object)
    ' https://docs.microsoft.com/en-us/office/vba/api/outlook.taskitem
    If Item.Class = olTask Then
        If Item.Complete Then
            'Creates a new email item and modifies its properties
            Dim objMail As Outlook.mailItem
            Set objMail = Application.CreateItem(olMailItem)
            With objMail
                .BodyFormat = olFormatHTML
                .To = ""
                .CC = ""
                .HTMLBody = "Stuff"
                .Display
            End With
        End If
    End If
End Sub

Надежда, которая помогает другим, желающим сделать то же самое.

...