会議がキャンセルされた後も、会議の記録を残しておくようにしています。これにより、さまざまなトピックで行われたアクティビティを後で確認したり、会議に出席しなかった理由を説明したりすることができます。(例: 「同じ時間に定期的な会議がありましたが、議長がそれをキャンセルし、今後の会議だけでなく、一連の会議全体を削除しました。」)
に投稿されたスクリプトを使ってみましたスリップスティックいくつかの異なる検索結果が同じ記事に私を導き続けました。しかし、それは私にとってはうまくいきませんでした。もっと簡単な方法はありますか?
そのスクリプトのコピーは次のとおりです。
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