취소된 회의를 참조용으로 달력에 보관하세요

취소된 회의를 참조용으로 달력에 보관하세요

나는 회의가 취소된 후에도 회의를 추적하는 것을 좋아합니다. 다양한 주제에 대해 진행된 활동을 다시 검토하고 때로는 귀하의 회의에 참석하지 않은 이유를 설명하는 데 도움이 됩니다. (EG, "동시에 반복 회의가 있었는데 의장이 이후 회의를 취소하고 앞으로의 시리즈만 삭제하는 대신 전체 시리즈를 삭제했습니다.")

게시 된 스크립트를 사용해 보았습니다.슬립스틱닷컴몇 가지 다른 검색 결과가 계속해서 동일한 기사를 가리키고 있었기 때문입니다. 그러나 그것은 나에게 제대로 작동하지 않았습니다. 더 쉬운 방법이 있나요?

해당 스크립트의 복사본은 다음과 같습니다.

Sub CopyMeetingtoAppointment(oRequest As MeetingItem)

If oRequest.MessageClass <> "IPM.Schedule.Meeting.Canceled" Then
  Exit Sub
End If

Dim oAppt As AppointmentItem
Dim cAppt As AppointmentItem

Set cAppt = oRequest.GetAssociatedAppointment(True)
Set oAppt = Application.CreateItem(olAppointmentItem)

'I added (Rule) to the subject so I could see the rule was working. 
    oAppt.Subject = "(Rule) Canceled: " & cAppt.Subject
    oAppt.Start = cAppt.Start
    oAppt.Duration = cAppt.Duration
    oAppt.Location = cAppt.Location
    oAppt.Display
    oAppt.Save

    Set oAppt = Nothing
    Set cAppt = Nothing
End Sub

이에 맞춰 규칙을 설정해야 하는데 그 부분은 괜찮다고 생각합니다.

스크린샷

답변1

이것저것 만져본 후에 달력 이벤트를 약속 항목에 복사하는 훨씬 쉬운 방법을 찾았습니다. 실제 복사 방법을 사용하는 것입니다. 다양한 시나리오, 특히 반복되는 회의에서 테스트해 보았는데 완벽하게 작동했습니다. 저는 모든 알림을 제거하고 해당 시간 동안 무료로 설정하도록 설정했습니다. 그리고 누가 취소했는지에 대한 메모도 추가했습니다. 사람들이 찾을 수 있는 다른 개선 사항이 있다면 환영하겠습니다.

Sub CopyMeetingToAppointment(oRequest As MeetingItem)

    'Double-check in case of accidental run
    If oRequest.MessageClass <> "IPM.Schedule.Meeting.Canceled" Then Exit Sub

    'Declare the objects
    Dim oAppt As AppointmentItem
    Dim cAppt As AppointmentItem
    Dim cancelMessage As String

    'Create the objects
    Set cAppt = oRequest.GetAssociatedAppointment(True)
    Set oAppt = cAppt.Copy

    'Create the cancel message
    cancelMessage = vbNewLine & vbNewLine & " - - - - - - - - - - - - - - - - - - - " & vbNewLine & _
        "Meeting was canceled by " & oRequest.SenderName & " <" & oRequest.SenderEmailAddress & "> on " & oRequest.ReceivedTime

    'Modify the copied appointment
    With oAppt
        If UCase(Left(.Subject, 6)) = "COPY: " Then .Subject = Mid(.Subject, 7)
        .Subject = "[BKP] " & .Subject
        .Body = .Body & cancelMessage
        .ReminderSet = False
        .BusyStatus = olFree
        .Save
    End With

    'Cleanup
    Set oAppt = Nothing
    Set cAppt = Nothing

End Sub

관련 정보