设置 MailItem.Sensitivity 停靠在主 window 中的电子邮件

Set MailItem.Sensitivity of email docked in main window

在 Outlook 2016 中停靠时尝试设置活动 MailItem 的敏感度时出现以下错误。弹出电子邮件时,我的代码的 "Else" 部分有效。

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

对象不支持此方法。

你可以从我附上的截图中清楚地看到msg变量显然是一个"MailItem"。

更新:这是工作代码:

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

Dim msg 移到 if 语句之外。

如果您 post 您的代码会很有帮助,这样我们就可以 运行 进行测试。

试试Select案例

Select Case Application.ActiveWindow.Class
       Case olExp
            Set Msg = ActiveExplorer.selection.Item(1)
       Case olInsp
            Set msg = ActiveInspector.CurrentItem
End Select

"docked" 是指内联回复吗?在这种情况下,您需要使用 Application.ActiveExplorer.ActiveInlineResponse 来检索正在组合的 MailItem 对象。