2016-05-19 2 views
0

Я пытаюсь захватить событие, когда вы создаете новую запись календаря непосредственно в рабочем окне рабочей недели Outlook (не с помощью кнопки «Новое назначение»).Захват создания события в календаре Outlook

Что работает, чтобы захватить событие обстреляли с помощью кнопки «Новое назначение» с этим кодом:

Dim WithEvents colInsp As Outlook.Inspectors 
Dim WithEvents oAppt As Outlook.AppointmentItem 

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

Private Sub colInsp_NewInspector(ByVal Inspector As Inspector) 
    If Inspector.CurrentItem.Class = olAppointment Then 
     Set oAppt = Inspector.CurrentItem 
    End If 
End Sub 

Private Sub oAppt_Write(cancel As Boolean) 
' Do something 
End Sub 

NewInspector к югу не дозвонились при создании события непосредственно в окне просмотра недели.

Каков правильный подход для этого?

Спасибо.

ответ

0

Используйте событие Items.ItemAdd в папке Календарь, возвращенной с Namespace.GetDefaultFolder(olFolderCalendar).

0

Dimitry, спасибо. С этим я нашел следующее:

Private WithEvents colItems As Outlook.Items 

Private Sub Application_Startup() 
    Dim oFolder As Outlook.MAPIFolder 
    Dim oNS As Outlook.NameSpace 

    Set oNS = Application.GetNamespace("MAPI") 
    Set oFolder = oNS.GetDefaultFolder(olFolderCalendar) 
    Set colItems = oFolder.Items 

    Set oNS = Nothing 
    Set oFolder = Nothing 
End Sub 

Sub colItems_ItemAdd(ByVal Item As Object) 
    ' Do what's needed 
End Sub 

Источник: http://microsoft.public.office.developer.outlook.vba.narkive.com/6zlusiPe/new-calendar-item-is-created