Non riesco a ignorare un avviso di Outlook a livello di programmazione prima che venga visualizzato.Chiudi promemoria Outlook
Private Sub Application_Reminder(ByVal Item As Object)
Dim objRem As Reminder
Dim objRems As Reminders
If Item.Subject = "TESTING" Then
'downloadAndSendSpreadReport
Set objRems = Application.Reminders
i = 0
For Each objRem In objRems
i = i + 1
If objRem.Caption = "TESTING" Then
objRems.Remove i
If objRem.IsVisible Then
objRem.Dismiss
End If
Exit For
End If
Next objRem
Item.ReminderSet = False
Item.Delete
'Item.Dismiss
End If
End Sub
voglio usare questo appuntamento Oggetto come un trigger per alcune macro senza bisogno gli utenti per chiudere manualmente il promemoria.
Mi sembra, quando viene attivato questo evento, la voce di richiamo non è visibile, quindi non può essere respinta
ho cercato di rimuoverlo dalle promemoria impostata ma questo sembra per cancellare l'intero evento dal mio calendario. Inoltre, verrà ancora visualizzato un promemoria STRANGE TITLE non in ASCII.
Mi sono stancato di impostare la proprietà reminderSet dell'elemento appuntamento su false, la proprietà promemoria viene comunque visualizzata.
Quindi sono in cerca di un modo per a) chiudere il promemoria prima che venga visualizzato automaticamente/b). chiudere il promemoria dopo che si apre automaticamente .... o una soluzione alternativa per fare un MACRO programmato in Outlook. (. Si prega di notare che non ho il permesso di utilizzare processo pianificato in Windows né VBS)
Aggiornamenti:
ora ho il seguente codice. Il promemoria è stato rimosso, ma verrà comunque visualizzata una finestra di promemoria con una didascalia come "Non c'è un appuntamento/promemoria" qualcosa del genere.
L'evento beforeReminderShow è utile nel senso della Promemoria Object IsVisible = true
così posso respingere fuori .. ma i promemoria finestre continuerà a pop-up, anche se c'è 0 evento.
Private WithEvents olRemind As Outlook.Reminders
Private Sub olRemind_BeforeReminderShow(Cancel As Boolean)
Set objRems = Application.Reminders
For Each objRem In objRems
If objRem.Caption = "TESTING" Then
If objRem.IsVisible Then
objRem.Dismiss
End If
Exit For
End If
Next objRem
End Sub
[Risolto] montaggio finale La soluzione finale praticabile (ho messo in "ThisOutlookSession" Module) Spero che questo aiuta gli altri
' declare this object withEvents displaying all the events
Private WithEvents olRemind As Outlook.Reminders
Private Sub Application_Reminder(ByVal Item As Object)
Set olRemind = Outlook.Reminders
' RUN OTHER MACRO HERE
End Sub
Private Sub olRemind_BeforeReminderShow(Cancel As Boolean)
For Each objRem In olRemind
If objRem.Caption = "TESTING" Then
If objRem.IsVisible Then
objRem.Dismiss
Cancel = True
End If
Exit For
End If
Next objRem
End Sub
darò una prova il Lunedi, anche grazie avanzare. Non sono riuscito a scoprire l'evento. Grazie! – Larry
Leggendo nuovamente la tua domanda, penso che dovrai fare una combinazione di ciò che hai già e del mio suggerimento. Sto pensando a un caso in cui desideri rimuovere un promemoria, ma l'utente ha altri promemoria. In questo caso rimuovi il tuo e poi lascia che la finestra del promemoria mostri. Se il tuo è l'unico promemoria, useresti l'evento che ho suggerito di interrompere la visualizzazione della finestra. – darbid
Ciao @darbid Vedi la mia modifica sulla domanda. Grazie – Larry