在Outlook中创建新约会时运行宏

时间:2017-05-17 14:35:09

标签: vba outlook outlook-vba

我是outlook vba的新手。

我想在Outlook 2016 32bit中的mycalendar中创建新约会时运行宏

我试过

Private WithEvents appt As Outlook.AppointmentItem

Private Sub appt_Write(Cancel As Boolean)
MsgBox ("test ok")
End Sub
在ThisOutlookSession模块中

但在编辑和保存新约会时没有任何反应。

我必须做什么?

2 个答案:

答案 0 :(得分:2)

apt变量永远不会被初始化并保持为空。尝试使用Application.Inspectors.MewInspector事件检查何时打开新约会,并在检查确实是约会后设置为Inspector.CurrentItem。请注意,您可以打开多个约会,因此单个apt变量无法工作,您需要有一个列表或数组。

答案 1 :(得分:2)

来自outlook event newMail (newItem)

Private WithEvents appt As AppointmentItem
Private WithEvents objinspectors As Outlook.Inspectors

Private Sub Application_Startup()
    Set objinspectors = Application.Inspectors
End Sub

Private Sub objinspectors_NewInspector(ByVal Inspector As Inspector)
    If TypeName(Inspector.currentItem) = "AppointmentItem" Then
        MsgBox "newinspector"
        Set appt = Inspector.currentItem    ' <----
    End If
End Sub

Private Sub appt_Write(Cancel As Boolean)
    MsgBox ("test ok")
End Sub

appt将是最近开通的约会项目