2013-07-05 11 views
9

Skopiowałem poniższy kod w moim oulook VBE, z jednej ze społeczności VBA i zmodyfikowałem go zgodnie z moimi potrzebami. Mogę go uruchomić za pomocą F5 i F8. Teraz chciałbym uruchomić to makro, gdy otrzymam wiadomość e-mail w folderze1. Próbowałem skonfigurować regułę, ale nie widzę makro wymienione w polu wyboru "Uruchom skrypt". już sprawdzone, żeNie widzę mojego makra VBA w polu wyboru "Uruchom skrypt"

  1. makro ustawienie zabezpieczeń są prawidłowe
  2. makro jest w module w klasie

można proszę mi powiedzieć, co jest nie tak w ustawieniach nie.

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 

Odpowiedz

10

Aby być uznane za prawidłowe makro scenariusz do kreatora reguł, makro musi mieć oczekiwany parametr:

Sub myRuleMacro(item as Outlook.MailItem) 

MSDN article (nadal ważne dla programu Outlook 2007/2010/2013/2016)

Related article

Powiązane problemy