2017-03-09 3 views
-1

Je suis assez vert avec VBA. J'ai une macro Outlook que j'ai trouvée en ligne qui ressemble exactement à ce dont j'ai besoin. J'essaie de définir une date d'expiration pour les messages répondant à certains critères. J'allais définir les critères dans les règles et avoir l'action d'exécuter ce script. Le code que j'ai trouvé en ligne est montré ci-dessous pour le contexte, mais le code lui-même n'est pas la base de ma question.Impossible d'exécuter la macro Outlook trouvée en ligne

Je ne peux pas exécuter la macro dans l'onglet développeur. Lorsque je sélectionne "Macros", la macro que j'ai enregistrée n'est même pas disponible pour l'exécution. J'ai enregistré la macro dans le dossier Module dans Project1, mes paramètres de macros me permettent d'exécuter toutes les macros sans signatures, j'ai essayé de redémarrer Outlook, regarder des vidéos sur Outlook VBA 101, ajuster l'espacement et le codage du script que j'ai trouvé, recherche de questions sur ce site, etc ... mais n'ont pas trouvé de raison pour laquelle je ne peux pas exécuter la macro. Je suis sûr qu'il me manque quelque chose d'évident. Toute aide serait appréciée ....

Code I trouvé en ligne

Sub SetExpire(Item As Outlook.MailItem) 

If Left(LCase(Item.Subject), 7) = "weather" Then 
    Item.ExpiryTime = Now + 1 
    Item.Save 
End If 

code modifié Je voudrais utiliser car si/alors sera basé sur les règles d'Outlook

Sub SetExpire(Item As Outlook.MailItem) 

Item.ExpiryTime = Now + 1 
Item.Save 

End Sub 

Répondre

1

Vous ne peut pas exécuter de code dans ce format directement. Vous devez lui passer "Item". Lorsqu'il est appelé à partir d'une règle "Item" est le courrier entrant.

Configurez la règle et appelez-la à partir de là.

Si vous voulez tester sans avoir à vous envoyer du courrier à plusieurs reprises.

Sub SetExpire_Test 
    ' with an open MailItem 
    SetExpire ActiveInspector.CurrentItem 
    ' or 
    ' with a MailItem selected 
    'SetExpire ActiveExplorer.Selection(1) 
End Sub