2015-12-22 1 views
0

J'ai regardé dans les réponses précédentes et essayé de nombreuses variantes sur le ci-dessous, mais je n'arrive pas à le faire fonctionner. Fondamentalement, le script ci-dessous a pour but de transformer les rappels d'Outlook en messages électroniques.Outlook Rappels au script E-mail - mais ne peut pas rejeter

Toutefois, je n'arrive pas à ignorer les rappels par programme. J'ai examiné les réponses précédentes à ces questions (par exemple this one) et tenté de les implémenter, mais elles ne semblent pas réussir dans cette configuration.

' declare this object withEvents displaying all the events 
Private WithEvents olRemind As Outlook.Reminders 
Private Sub Application_Reminder(ByVal Item As Object) 
    Dim objMsg As MailItem 
    Dim objRem As Reminder 
    Dim olRemind As Reminders 
    Set olRemind = Outlook.Reminders 
    Set objMsg = Application.CreateItem(olMailItem) 
    objMsg.To = "*ADDRESS REMOVED FROM EXAMPLE*" 
    objMsg.subject = "MHReminder: " + Item.subject 
    objMsg.Body = Item.Body 
    Set objMsg.SaveSentMessageFolder = Session.GetDefaultFolder(olFolderDeletedItems) 
    objMsg.Send 
    Set objMsg = Nothing 
End Sub 

Private Sub olRemind_BeforeReminderShow(Cancel As Boolean) 

    For Each objRem In olRemind 
     If objRem.IsVisible = True Then 
      objRem.Dismiss 
      Cancel = True 
     End If 
    Exit For 
    Next objRem 

End Sub 

Je suis un peu plus d'un programmeur « bidouille et épissure » qu'un vrai programmeur, donc tout le monde apprécierait mes erreurs en montrant (je l'espère) évidentes.

Merci ...

Répondre

0

Vous regardez le premier rappel trouvé quitter puis avec

Exit For 

Comme dans l'exemple que vous avez trouvé Dismiss Outlook reminder vous aurez besoin quelque chose comme

For Each objRem In objRems 
    If objRem.Caption = "TESTING" Then ' <-- 
     If objRem.IsVisible Then 
      objRem.Dismiss 
     End If 
     Exit For 
    End If 
Next objRem 
+0

Si c'est la réponse, n'acceptez pas. Supprimer la question – niton

+0

Cela ne semble pas s'appliquer ici - fondamentalement, le script est supposé convertir n'importe quel rappel déclenché en e-mail, donc je ne cherche pas à tester en fonction d'une légende. –

+0

La réponse est vraiment la même. Vous traitez le premier rappel trouvé puis Quitter. Pour traiter chaque rappel, déposez la commande Exit For. Je pense que vous devrez trouver comment identifier le rappel qui déclenche chaque email et annuler seulement celui-là. – niton

0

Le paramètre Annuler dans le gestionnaire d'événements BeforeReminderShow doit être ByRef.