我是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模块中但在编辑和保存新约会时没有任何反应。
我必须做什么?
答案 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将是最近开通的约会项目