Установить MailItem. Чувствительность почты, закрепленной в главном окне - PullRequest
1 голос
/ 09 апреля 2019

Я получаю следующую ошибку при попытке установить Чувствительность активного MailItem при закреплении в Outlook 2016. Часть «Остальное» моего кода работает, когда электронное письмо выдается.

Error message: 
Run-time error "-2082340855 (83e20009)

Объект не поддерживает этот метод.

На моем прикрепленном скриншоте ясно видно, что переменная msg явно является "MailItem".

enter image description here

ОБНОВЛЕНИЕ: Вот рабочий код:

Sub ToggleConfidentialSensitivity()
    On Error Resume Next

    Dim msg As Outlook.MailItem

    If Application.ActiveInspector Is Nothing Then 'we are in the main window (inline)
        Set msg = Application.ActiveExplorer.ActiveInlineResponse
    Else 'we are in a popped out message
        Set msg = ActiveInspector.CurrentItem
    End If

    If msg.Sensitivity = olConfidential Then
        msg.Sensitivity = olNormal
        msg.Subject = Replace(msg.Subject, "*Confidential* ", "")
        MsgBox ("This email is now marked as public")
    Else
        msg.Sensitivity = olConfidential
        msg.Subject = "*Confidential* " + msg.Subject
        MsgBox ("This email is now marked as Confidential")
    End If
End Sub

Ответы [ 2 ]

1 голос
/ 10 апреля 2019

Под "закрепленным" вы подразумеваете встроенный ответ?В этом случае вам нужно использовать Application.ActiveExplorer.ActiveInlineResponse для получения составного объекта MailItem.

1 голос
/ 10 апреля 2019

Переместить Dim msg за пределы оператора if.

Было бы полезно, если бы вы опубликовали свой код, чтобы мы могли запустить тест.

Попробуйте что-то вроде примера Select Case

Select Case Application.ActiveWindow.Class
       Case olExp
            Set Msg = ActiveExplorer.selection.Item(1)
       Case olInsp
            Set msg = ActiveInspector.CurrentItem
End Select
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...