Me gusta realizar un seguimiento de las reuniones incluso después de que fueron canceladas. Me ayuda a volver a revisar la actividad realizada en varios temas y, a veces, a explicar por qué no asistí a su reunión. (Por ejemplo, "Hubo una reunión recurrente al mismo tiempo, pero el presidente la canceló y eliminó toda la serie en lugar de solo las futuras").
Intenté usar el script publicado enslipstick.comya que algunos resultados de búsqueda diferentes seguían remitiéndome al mismo artículo. Sin embargo, no funcionó del todo bien para mí. hay una manera mas facil?
Aquí hay una copia de ese guión:
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
Se supone que debes configurar una regla que lo acompañe y creo que esa parte está bien:
Respuesta1
Después de jugar con él, encontré una manera mucho más fácil de copiar el evento del calendario a un elemento de cita: usar el método de copia real. Lo probé en varios escenarios, especialmente con reuniones recurrentes, y funcionó a la perfección. Lo configuré para eliminar cualquier recordatorio y dejarte libre durante ese tiempo. Además, agregué una nota sobre quién lo canceló. Si hay otras mejoras que la gente pueda encontrar, las agradecería.
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