web-dev-qa-db-fra.com

Je ne vois pas ma macro VBA dans la boîte de sélection "Exécuter un script"

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 

  1. les paramètres de sécurité macro sont corrects
  2. la macro est dans un module pas dans une classe

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
12
user2554417

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 connexe

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).

19
Axel Kemper

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.

0
Keith