キャンセルされた会議をカレンダーに保存して参照できるようにする

キャンセルされた会議をカレンダーに保存して参照できるようにする

会議がキャンセルされた後も、会議の記録を残しておくようにしています。これにより、さまざまなトピックで行われたアクティビティを後で確認したり、会議に出席しなかった理由を説明したりすることができます。(例: 「同じ時間に定期的な会議がありましたが、議長がそれをキャンセルし、今後の会議だけでなく、一連の会議全体を削除しました。」)

に投稿されたスクリプトを使ってみましたスリップスティックいくつかの異なる検索結果が同じ記事に私を導き続けました。しかし、それは私にとってはうまくいきませんでした。もっと簡単な方法はありますか?

そのスクリプトのコピーは次のとおりです。

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

関連情報