Я не могу видеть, как мой макрос VBA находится в поле "запускать script"

Я скопировал следующий код в моем VUE VUE из одного из сообществ VBA и внесла в него изменения в соответствии с моей потребностью. Я могу запустить его с помощью F5 и F8. Теперь я хотел бы запускать этот макрос всякий раз, когда получаю электронное письмо в папке1. Я попытался настроить правило, но я не вижу макроса, указанного в поле "запустить a script". Я уже проверил, что

  • настройка безопасности макроса верна.
  • макрос находится в модуле не в классе

Не могли бы вы рассказать мне, что происходит в настройке.

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

Ответ 1

Чтобы быть признанным в качестве правильного макроса сценария для мастера правил, макрос должен иметь ожидаемый параметр:

Sub myRuleMacro(item as Outlook.MailItem)

статья MSDN (все еще действительна для Outlook 2007/2010/2013/2016)

Связанная статья

Статья о включении правил run-a-script в противном случае отключена по соображениям безопасности
(ключ реестра EnableUnsafeClientMailRules).

Ответ 2

У меня была такая же проблема сегодня с похожим сценарием после обновления Office до версии 1803 (сборка 9126.2282). Удаление ключевого слова "Publicic" из подпрограммы сделало свое дело. Не уверен, почему, так как работал в течение многих лет.

Мне также пришлось заново добавить пропавший ключ reg - EnableUnsafeClientMailRules.