我在"运行脚本"选择框中看不到我的VBA宏

use*_*417 14 vba outlook-vba

我在我的oulook VBE中复制了以下代码,来自其中一个VBA社区,并根据我的需要对其进行了修改.我可以使用F5和F8运行它.现在,每当我收到folder1中的电子邮件时,我都想运行此宏.我尝试设置规则,但我看不到"运行脚本"选择框中列出的宏.我已经检查过了

  1. 宏安全设置是正确的
  2. 宏是在一个不在类中的模块中

你能告诉我这个环境出了什么问题.

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
Run Code Online (Sandbox Code Playgroud)

Axe*_*per 22

要被识别为规则向导的正确脚本宏,宏必须具有预期参数:

Sub myRuleMacro(item as Outlook.MailItem)
Run Code Online (Sandbox Code Playgroud)

MSDN文章(仍然适用于Outlook 2007/2010/2013/2016)

相关文章

有关启用由于安全原因
(注册表项EnableUnsafeClientMailRules)而禁用的run-a-script规则的文章.