Я пытаюсь получить статистику собраний из комнатных календарей для записи в файл Excel.
Сценарий работает для комнат, где DefaultItemType
установлен на 1 (olAppointmentItem
), но прерывается, когда DefaultItemType
в комнате равно 0 (olMailItem
).
Я думаю, что мне нужно найти встречу, связанную с приглашениями на собрание, с использованием метода MeetingItem.GetAssociatedAppointment
.
Вот что У меня есть:
CAL_LIST
- массив с адресами комнат. - Строки
MsgBox
просто для меня, чтобы понять, что происходит.
For Each varCal In CAL_LIST
Set olkOwn = Session.CreateRecipient(CStr(varCal))
olkOwn.Resolve
If olkOwn.Resolved Then
Set olkFld = Session.GetSharedDefaultFolder(olkOwn, olFolderCalendar)
If olkFld.DefaultItemType = olAppointmentItem Then
MsgBox "" & varCal & " - " & olkFld.DefaultItemType & " - DEFAULT: olAppointmentItem."
Set olkLst = olkFld.Items
olkLst.Sort "[Start]"
olkLst.IncludeRecurrences = True
Set olkRes = olkLst.Restrict("[Start] >= '" & Format(datBeg, "ddddd h:nn AMPM") & "' AND [Start] <= '" & Format(datEnd, "ddddd h:nn AMPM") & "'")
For Each olkApt In olkRes
'Only export appointments
If olkApt.Class = olAppointment Then
strLst = ""
For Each olkRec In olkApt.Recipients
strLst = strLst & olkRec.Name & ", "
Next
If strLst <> "" Then strLst = Left(strLst, Len(strLst) - 2)
'Add a row for each field in the message you want to export
excWks.Cells(lngRow, 1) = varCal
excWks.Cells(lngRow, 2) = olkApt.Organizer
excWks.Cells(lngRow, 3) = olkApt.Location
excWks.Cells(lngRow, 4) = olkApt.Start
excWks.Cells(lngRow, 5) = olkApt.End
'excWks.Cells(lngRow, 6) = strLst
lngRow = lngRow + 1
lngCnt = lngCnt + 1
End If
Next
ElseIf olkFld.DefaultItemType = olMailItem Then
MsgBox "" & varCal & " - " & olkFld.DefaultItemType & " - DEFAULT: olMailItem."
MsgBox "I think I need to do something here with MeetingItem.GetAssociatedAppointment but I can't get it to work..."
Else
MsgBox "" & varCal & " - " & olkFld.DefaultItemType & " - DEFAULT: is not a olAppointmentItem nor a olMailItem."
End If
Else
MsgBox "I could not find a recipient named " & varCal & ". Calendar skipped. I will continue processing the remaining calendars.", vbExclamation + vbOKOnly, SCRIPT_NAME
End If
Next