J'ai (en utilisant des informations de SO) implémenté une macro VBA qui fonctionne pour traiter de nouveaux courriels après que les options "Exécuter un script" ont été supprimées des règles d'Outlook. Je fais cela comme suit: Cependant, l'écouteur de la boîte de réception semble arrêter de fonctionner et que je devais redémarrer Outlook ou réorganiser la macro "Startup 'manuellement pour le ramener dans la vie - Cela semble être un problème commun sans solution. P> question strong> - Je ne suis pas un expert VBA et je me demandais si je peux simplement réorganiser le "Application_Startup" Macro pour redémarrer l'auditeur à la fin de l'élément 'items_ItemADD (item byval comme objet)' code> macro? p> p>
3 Réponses :
Vous pouvez ajouter une nouvelle macro qui effectue les actions présentes à l'origine dans l'événement Application_Startup CODE>. Ensuite, vous pourriez ensuite faire référence à ce sous à la fin de votre
items_Itemadd code> macro.
Private WithEvents Items As Outlook.Items
Public Sub Application_Startup()
Call startupevents
End Sub
Sub startupevents()
' Add an inbox event listener
Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
' default local Inbox
Set Items = objNS.GetDefaultFolder(olFolderInbox).Items
MsgBox "Startup macro run"
End Sub
Private Sub Items_ItemAdd(ByVal item As Object)
'Do something on new email arrival
'
'
'
Call startupevents
End Sub
Je ne vois pas comment cela peut fonctionner - si ItemAjouter l'événement incendie, vous savez que tout est bon et qu'il n'est pas nécessaire de réinitialiser le gestionnaire d'événements. Et si ItemAjouter l'événement ne tire pas, votre code réinitialisant le gestionnaire d'événements ne fonctionnera de toute façon pas.
@DMITRYSSTREBLECHENKO Cela dépend du moment et de la raison pour laquelle le gestionnaire d'événements s'arrête. itemAjouter code> semble fonctionner un ou deux fois avant d'arrêter de travailler. S'il est désactivé après avoir exécuté quelques fois une fois initialement mis en place, puis la réinitialiser de
startupevents code> chaque fois que cela devrait le garder fonctionner.
@Tim - Il suffit de confirmer que cela ne fonctionne pas. Je peux réexécuter manuellement le StarTutuPEvents CODE> et qui obtenez-le de fonctionner à nouveau, de sorte que l'auditeur de la boîte de réception échoue à un autre point et
items_Itemadd code> ne s'appelle pas du tout.
Merci pour l'entrée. J'ai fait ma routine pour définir la catégorie sur la base de mots dans le sujet, un sous public, donc si cela cesse de fonctionner, je peux le courir manuellement et redémarrer également l'auditeur de la boîte de réception manuellement.
Si vous avez besoin de réinitialiser le gestionnaire d'événements code> itemAjouter, je ne pense pas à utiliser Vous pouvez soit utiliser une minuterie (qui n'existe pas dans VBA), soit vous pouvez utiliser un autre événement qui incendie plus ou moins fréquemment, tel que l'événement itemAjouter code> pour le faire. p>
Explorer.SelectionChange code> (
Explorer code> peut être récupéré à partir de
application.activeExplorer code>). p>
Je suppose que la question sous-jacente de "Pourquoi le gestionnaire d'événements d'ItemAjouter cesse-t-il" reste-t-il sans réponse? J'ai cherché mais j'ai trouvé aucune réponse. juste des suggestions telles que définir toutes les variables pour "rien" et "ajouter un applicatif_quit () code> '
Il peut arrêter de tirer si une connexion avec le service est perdue, mais qui ne s'applique qu'au mode en ligne (par opposition au mode mis en cache).
Merci pour l'entrée. J'ai fait ma routine pour définir la catégorie sur la base de mots dans le sujet, un sous public, donc si cela cesse de fonctionner, je peux le courir manuellement et redémarrer également l'auditeur de la boîte de réception manuellement.
J'ai remarqué l'erreur occasionnelle de Additem - "Mismachatch de type 13", j'ai donc élargi la routine du gestionnaire d'erreur pour imprimer également le sujet. Peut-être que cette erreur est la cause de l'additillems arrêter de travailler ou peut-être que c'est un symptôme d'être cassé,
Vous devez vraiment montrer les extraits pertinents du code de votre yeurt. Gardez à l'esprit que la boîte de réception peut contenir des articles autres que MailItem, tels que MeetingItem, ReportItem, etc.
Le code plus simple peut avoir un impact.
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) Application_Startup End Sub
Cela ne vous fera aucun bien - vous savez que l'auditeur d'événements fonctionne lorsque des articles d'événement.Itemadd. Et si ce n'est pas le cas, itacadd ne tirera pas de toute façon.
@Dmittrystrebleblechenko Eh bien, je ne sais pas que comme je suis nouveau à Outlook VBA 😀 mais je sais que cela cesse de travailler et je sais que le redémarrage des perspectives semble le faire fonctionner à nouveau, alors je me demande comment le garder en marche quand tout Ma recherche a révélé que cela serait un problème connu sans solution. Espérons que la solution postée comme une réponse fera l'affaire.
Exécutez un code chaque demi d'heure Stackoverflow.com/Questtions/12257985/...