how to dismiss a reminder after sending a recurring email via vba?

Solution 1:

According to the MSDN the Applcation.Reminder event used Slipstick's macros is executed before the reminders dialog appears. But the Reminder.Dismiss method requires that a reminder (not sure if it has to be the same one) is already displayed in the reminder dialog. That's why this is not working. That said, AFAIK there's no guarantee that Reminders(1) will be the reminder that just fired; you may be trying to dismiss the wrong reminder.

As a possible solution (which I must emphasize, I have not tested), try using Reminders.Remove(Item.Subject). The documentation seems to indicate that Reminders.Remove requires the numerical index, but it's worth a try. Also, if two items with reminders have the same subject, there's no guarantee that you'll get the right one.

Solution 2:

Just had this issue myself. j_foster's idea seems to work well. However it's better to use the Entry ID of the appointment item to identify the index of the notification. Then one can use remove().

See below:

Private Sub Application_Reminder(ByVal Item As Object)
    If TypeOf Item Is AppointmentItem Then
        'Do Something...

        'Loop over all reminders and find index of appt
        Dim appt As AppointmentItem: Set appt = Item
        Dim i As Integer: i = 0
        Dim notif As reminder
        For Each notif In Application.Reminders
            i = i + 1
            If notif.Item.EntryID = appt.EntryID Then
                Call Application.Reminders.Remove(i)
                Exit For
            End If
        Next
    End If
End Sub