"Simple" macro



I'm running MS Outlook 2003 with SP2 on Win XP home.
With a given e-mail message selected, I would like, with one click of a
custom toolbar button, to do the following:-
1. Add sender to blocked e-mail list
2. Move the e-mail to the Junk e-mail folder
I realise there are menu items for these, but I need to automate.
Unfortunately, as Outlook appears to have no Record Macro capability, I am
having difficulty writing appropriate code.
I've done the custom button and got this far with item 2:-

Sub MyJunk()
Dim myOlApp As New Outlook.Application
Dim myOlExp As Outlook.Explorer
Dim myOlSel As Outlook.Selection
Dim myDestFolder As Outlook.MAPIFolder
Set myDestFolder = Application.Explorers.Item("Junk E-mail")
myOlSel.Move myDestFolder
End Sub
It steps thru ok until the last line of code when, I get the following error:-
"Object variable or With block variable not set"
I don't know how to write code for Item for 1.
Any suggestions would be appreciated.


There is no documented method to read/edit the blocked senders list in
Outlook 2003. You can still manually move them though. The problem with
your code is how you retrieve a folder. See below as an example of how to
get the root folder of a particular store (like a .pst file) by folder and
store name.

You'll also have to iterate the Selection object to move items individually:

Dim objItem As Object

For Each objItem in myOlSel
objItem.Move myDestinationFolder

Sub TestGetRootFolder()
Dim objF As Outlook.MAPIFolder

Set objF = GetRootFolder("Junk E-mail", "Eric Legault")

Debug.Print objF.Name
Set objF = Nothing
End Sub

Function GetRootFolder(FolderName As String, StoreName As String) As

Dim objNS As NameSpace
Dim objRootFolder As Outlook.MAPIFolder

Set objNS = Application.GetNamespace("MAPI")
Set objRootFolder = objNS.Folders(StoreName)
Set GetRootFolder = objRootFolder.Folders(FolderName)

Set objRootFolder = Nothing
Set objNS = Nothing

End Function

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question