Solved

Outlook 2003 macro not working in 2007 out of office

Posted on 2009-04-09
3
441 Views
Last Modified: 2012-06-21
I have a series of macros that I use to set different messages in the Out Of Office assistant.  They have worked fine in 2003, but now, the CreateObject("MAPI.Session") is not liked.  I cannot find the 2007 equivalent of this statement.
    Dim Text1, Text2, Text3, TextComma As String
 

    TextComma = ", "

    Text1 = "Thanks for your e-mail! "

    Text2 = "My hours are 7:30 - 4:00 and I am gone for the rest of today, "

    Text3 = ".  I will return your e-mail in the morning. "
 

    Set oSession = CreateObject("MAPI.Session")

    oSession.Logon "", "", False, False

  

    'Set the body text.

    oSession.OutOfOfficeText = Text1 & Chr$(13) & Chr$(13) & Text2 & WeekdayName(Weekday(Date)) & TextComma & Date & Text3
 

    'Turning on Out of Office

    oSession.OutOfOffice = True

Open in new window

0
Comment
Question by:pmpatane
  • 2
3 Comments
 
LVL 76

Accepted Solution

by:
David Lee earned 250 total points
ID: 24109480
Hi, pmpatane.

Outlook 2007 doesn't use CDO (e.g. MAPI.Session).  Microsoft added the ability to manage properties directly from the Outlook object model without the need for another component (CDO).  Here's a macro that sets the out of office text and turns it on.
Sub OutOfOffice()

    Const PR_OOF_STATE = "http://schemas.microsoft.com/mapi/proptag/0x661D000B"

    Dim olkIS As Outlook.Store, _

        olkPA As Outlook.PropertyAccessor, _

        olkOOFMessage As Outlook.StorageItem

    For Each olkIS In Session.Stores

        If olkIS.ExchangeStoreType = olPrimaryExchangeMailbox Then

            Set olkPA = olkIS.PropertyAccessor

            olkPA.SetProperty PR_OOF_STATE, True

            Set olkOOFMessage = Outlook.Session.GetDefaultFolder(olFolderInbox).GetStorage("IPM.Note.Rules.OofTemplate.Microsoft", olIdentifyByMessageClass)

            olkOOFMessage.Body = Text1 & Chr$(13) & Chr$(13) & Text2 & WeekdayName(Weekday(Date)) & TextComma & Date & Text3

            olkOOFMessage.Save

            Exit For

        End If

    Next

    Set olkIS = Nothing

    Set olkPA = Nothing

    Set olkOOFMessage = Nothing

End Sub

Open in new window

0
 

Author Closing Comment

by:pmpatane
ID: 31568696
That worked flawlessly, but wow, a whole lot more overhead is necessary.  You want to recommend any good books for Outlook 2007 VBA.  My old skills aren't going to be up to snuff.  (Even though my 2003 macros for Send with Read Receipt and adding Voting buttons still work)
0
 
LVL 76

Expert Comment

by:David Lee
ID: 24111305
The best book I know of is "Microsoft Outlook 2007 Programming" by Sue Mosher (ISBN: 978-1-55558-346-0).  She also runs the site http://www.outlookcode.com
0

Featured Post

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
Public Folder not showing in address list. 1 22
Exchange, outlook 2 42
Outlook 2013 will not archive 4 41
outlook 6 44
Granting full access permission allows users to access mailboxes present in their database. By giving full access permission one can open and read the content of any mailbox but cannot send emails from that mailbox.
Use these top 10 tips to master the art of email signature design. Create an email signature design that will easily wow recipients, promote your brand and highlight your professionalism.
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
To add imagery to an HTML email signature, you have two options available to you. You can either add a logo/image by embedding it directly into the signature or hosting it externally and linking to it. The vast majority of email clients display l…

708 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

16 Experts available now in Live!

Get 1:1 Help Now