Can't get macro to run in Outlook 2010

Posted on 2010-08-18
Last Modified: 2012-06-27
I have this macro that used to run fine in Outlook 2007.
Now when I try to run it in 2010 I get mixed results.

Run in Visual Basic Editor: No problems, runs fine.
Run from Developer tab > Macros > Project: Nothing happens
Run from Developer Tab > Macros > Macros > Project > Run: "Sub or Function not defined." I can't see where in the code this is referring to.

I have digitally signed my macro.
My macro security is on: "Notifications for all macros".

Sub CancApt()

    Dim olkFld As Outlook.Folder, _

        olkLst As Outlook.Items, _

        olkItemsInDateRange As Outlook.Items, _

        olkApt As Outlook.AppointmentItem, _

        strRestriction As String, _

        intCnt As Integer, _

        intIdx As Integer, _

        intAnswer As String, _

        daStart As Date, _

        daEnd As Date


    'Enter a start and end date'

    daStart = InputBox("Enter a start date.", "Purge Canceled Appointments Start", (DateAdd("d", -7, Date)))

    daEnd = InputBox("Enter an end date.", "Purge Canceled Appointments End", (DateAdd("d", 60, Date)))



    'Construct a filter for the date range.

    strRestriction = "[Start] >= '" & daStart _

    & "' AND [End] <= '" & daEnd & "'"


    'Select calendar items in current folder

    intAnswer = MsgBox("Have you selected the calendar?", vbYesNo, "Wait")

    If intAnswer = vbYes Then


        GoTo EndMacro

    End If

    Set olkFld = Application.ActiveExplorer.CurrentFolder

    Set olkLst = olkFld.Items


    'To include recurring appointments, sort by using the Start property.

    olkLst.IncludeRecurrences = True

    olkLst.Sort "[Start]"


    'Restrict the Items collection.

    Set olkItemsInDateRange = olkLst.Restrict(strRestriction)

    'Loop to count the items'

    For Each olkApt In olkItemsInDateRange

        intCnt = intCnt + 1


    'Loop to process the items'

    For intIdx = intCnt To 1 Step -1

        Set olkApt = olkItemsInDateRange(intIdx)

        If Left(olkApt.Subject, 9) = "Canceled:" Then


        End If




    Set olkFld = Nothing

    Set olkLst = Nothing

    Set olkApt = Nothing

    MsgBox "Purge complete.", vbInformation + vbOKOnly, "Purge Canceled Appointments"

End Sub

Open in new window

Question by:Relentim
  • 2
LVL 59

Accepted Solution

Chris Bottomley earned 500 total points
ID: 33463155
WHere have you placed the code, a normal module or in thisoutlooksession


Author Comment

ID: 33463191
It was in a normal module.
I've now put it in thisoutlooksession and it works.


Author Closing Comment

ID: 33463192
It was in a normal module.
I've now put it in thisoutlooksession and it works.

Featured Post

VMware Disaster Recovery and Data Protection

In this expert guide, you’ll learn about the components of a Modern Data Center. You will use cases for the value-added capabilities of Veeam®, including combining backup and replication for VMware disaster recovery and using replication for data center migration.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article descibes how to create a connection between Excel and SAP and how to move data from Excel to SAP or the other way around.
MS Outlook is a world-class email client application that is mainly used for e-communication globally.  In this article, we will discuss the basic idea about MS Outlook, its advanced features, and types of MS Outlook File formats.
This video walks the viewer through the process of creating envelopes and labels, with multiple names and addresses. Navigate to the “Start Mail Merge” button in the Mailings tab: Follow the step-by-step process until asked to find the address doc…
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…

919 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now