Vba 触发发送时获取AppointmentItem数据

Vba 触发发送时获取AppointmentItem数据,vba,outlook,Vba,Outlook,发送Outlook 2016约会时,我使用以下命令触发VBA代码: Application_ItemSend(ByVal Item As Object, Cancel As Boolean) 如何显示特定于“AppointmentItem”类型的数据 我希望看到一个信息框“你想在学校谈论计算机吗” 但我得到一个运行时错误“438” Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) Dim

发送Outlook 2016约会时,我使用以下命令触发VBA代码:

Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
如何显示特定于“AppointmentItem”类型的数据

我希望看到一个信息框“你想在学校谈论计算机吗”
但我得到一个运行时错误“438”

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

    Dim prompt As String
    prompt = "Do you want to talk about " & Item.Subject    'Works
    prompt = prompt & " at " & Item.Location                'Error
    If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
        Cancel = True
    End If

End Sub

如果发送会议请求,则发送的项目本身是
olMeetingRequest
,而不是
olappoimentitem

您可以通过以下方式处理相应的约会项目:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim objAppointment As AppointmentItem
    If Item.Class = olMeetingRequest Then
        Set objAppointment = Item.GetAssociatedAppointment(False)
        Debug.Print objAppointment.Subject
        Debug.Print objAppointment.Location
    End If
End Sub