J'ai copié le code suivant dans mon oulook VBE, à partir d'une des communautés VBA, et l'a modifié selon mes besoins. Maintenant, je voudrais exécuter cette macro chaque fois que je reçois un email dans folder1. J'ai essayé de configurer une règle mais je ne peux pas voir la macro répertoriée dans la zone de sélection "exécuter un script". J'ai déjà vérifié cela
pouvez-vous s'il vous plaît me dire ce qui ne va pas dans le cadre.
Public Sub SaveAttachments()
Dim myOlapp As Outlook.Application
Dim myNameSpace As Outlook.NameSpace
Dim myFolder As Outlook.MAPIFolder
Dim yourFolder As Outlook.MAPIFolder
Dim myItem As Outlook.MailItem
Dim myAttachment As Outlook.Attachment
Dim I As Long
Set myOlapp = CreateObject("Outlook.Application")
Set myNameSpace = myOlapp.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox)
Set yourFolder = myNameSpace.GetDefaultFolder(olFolderInbox)
Set myFolder = myFolder.Folders("folder1")
Set yourFolder = yourFolder.Folders("folder2")
For Each myItem In myFolder.Items
If myItem.Attachments.Count <> 0 Then
For Each myAttachment In myItem.Attachments
I = I + 1
myAttachment.SaveAsFile "C:\arthur\test.csv"
Next
End If
myItem.Move yourFolder
Next
End Sub
Pour être reconnue comme une macro de script appropriée pour l'Assistant Règle, la macro doit avoir le paramètre attendu:
Sub myRuleMacro(item as Outlook.MailItem)
Article MSDN (toujours valable pour Outlook 2007/2010/2013/2016)
Article sur l'activation des règles d'exécution d'un script autrement désactivé pour des raisons de sécurité
(clé de registre EnableUnsafeClientMailRules
).
J'ai eu le même problème aujourd'hui sur un script similaire après la mise à niveau d'Office vers la version 1803 (version 9126.2282). Supprimer le mot clé "Pubic" du sous-marin a fait l'affaire. Je ne sais pas pourquoi, depuis travaille depuis des années dans l'autre sens.
J'ai également dû rajouter la clé de registre qui avait disparu - EnableUnsafeClientMailRules.