Outlook Banter

Outlook Banter (http://www.outlookbanter.com/)
-   Outlook and VBA (http://www.outlookbanter.com/outlook-vba/)
-   -   "Simple" macro (http://www.outlookbanter.com/outlook-vba/14730-simple-macro.html)

donbowyer May 15th 06 04:24 PM

"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.

--
donwb

Eric Legault [MVP - Outlook] May 15th 06 10:58 PM

"Simple" macro
 
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
Next

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
MAPIFolder

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

--
Eric Legault (Outlook MVP, MCDBA, MCTS: Messaging & Collaboration)
Try Picture Attachments Wizard for Outlook:
http://www.collaborativeinnovations.ca
Blog: http://blogs.officezealot.com/legault/


"donbowyer" wrote:

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.

--
donwb



All times are GMT +1. The time now is 08:26 PM.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 2.4.0
Copyright ©2004-2006 OutlookBanter.com