Ich verwende die folgende VBA-Subroutine, um Termine aus meinem Kalender zu löschen.
Public Sub deleteSelectedAppointment() Dim obj As Object Dim cl As Integer Dim apt As AppointmentItem Dim aptDel As AppointmentItem Dim pattern As RecurrencePattern Dim cnt As Integer On Error GoTo ErrHandler cnt = 0 For Each obj In ActiveExplorer.Selection cl = obj.Class Select Case cl Case olMail Case olTask Case olAppointment Set apt = obj Debug.Print "Appointment " & apt.subject If apt.IsRecurring Then ' find and delete the selected item in a series Set pattern = apt.GetRecurrencePattern() Set aptDel = pattern.GetOccurrence(apt.Start) Else ' non-recurring appointment Set aptDel = apt End If If aptDel Is Nothing Then Debug.Print "Nothing to delete!" Else aptDel.Delete cnt = cnt + 1 End If Case Else Debug.Print "unexpected class " & cl End Select Next obj Debug.Print "Deleted appointments: " & cnt Exit Sub ErrHandler: MsgBox "Cannot delete appointment" & vbCrLf & Err.Description, vbInformation Err.Clear On Error GoTo 0 End Sub
Es funktioniert auch für Aufgaben und Mails. Natürlich kann eine solche Routine eine Menge löschen, wenn sie nicht sorgfältig verwendet wird ...