Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

I cannot see my VBA macro in 'run a script' selection box

Tags:

vba

outlook

I copied the following code in my oulook VBE, from one of the VBA communities and amended it as per my need. I can run it using F5 and F8. Now I would like to run this macro whenever I receive an email in folder1. I tried setting up a rule but I cannot see the macro listed in the 'run a script' selection box. I have already checked that

  1. macro security setting are correct
  2. macro is in a module not in a class

can you please tell me what is going wrong in the setting.

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
like image 820
user2554417 Avatar asked Jul 05 '13 16:07

user2554417


People also ask

Why can't I run a script in Outlook rules?

When the update is installed, any existing run-a-script and run application rules will be disabled. To fix, you need to set the EnableUnsafeClientMailRules value in the registry then restart Outlook. If you don't want to edit the registry yourself, you can use this ready-to-use .

Where are VBA scripts stored?

All Outlook macros are stored in a single file named VbaProject. otm in the user's %appdata%\Microsoft\Outlook folder, which will be a hidden folder on most systems.


1 Answers

To be recognized as proper script macro for the Rule Wizard, the macro has to have the expected parameter:

Sub myRuleMacro(item as Outlook.MailItem)

MSDN article (still valid for Outlook 2007/2010/2013/2016)

Related article

Article about enabling run-a-script rules otherwise disabled due to security reasons
(registry key EnableUnsafeClientMailRules).

like image 162
Axel Kemper Avatar answered Oct 24 '22 10:10

Axel Kemper