A Microsoft Outlook email forum. Outlook Banter

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » Outlook Banter forum » Microsoft Outlook Email Newsgroups » Add-ins for Outlook
Site Map Home Register Authors List Search Today's Posts Mark Forums Read Web Partners

Outlook 2003/2007 Rule and Conditions for InBox VBA customization



 
 
Thread Tools Search this Thread Display Modes
  #1  
Old March 20th 09, 09:35 PM posted to microsoft.public.outlook.program_addins
GreyCoderII
external usenet poster
 
Posts: 2
Default Outlook 2003/2007 Rule and Conditions for InBox VBA customization

I would like Outlook to periodically examine my inbox items to do some
automated cleanup. Unfortunately the basic functionality of Rules Wizard does
not provide the two Conditions and Time interval setting I need to test to
apply an action. So I believe I must write a VBA Script to perform the
actions.

Outlook (out of the box) seems to be missing ability to set conditions on
any of the MailBoxItem properties (only some...) , and is missing a Check
Messages Periodically interval where Check either when arrive or when sent
exists.

I want to daily (After midnight) check all InBox items that are from certain
addresses (condition for rule exists), AND where the Item Property is
MailBoxItem.UnRead (does not exist in selection conditions presently) , and
the Item.DateReceived is 7 days from todays date ie: item is older than 7
days, and then Move the item to another folder (Action can be set in current
Rules choices)

I am not VB/VBA programmer but I have done a little VB work , There are no
samples (or MS documentation) around that define all of the pieces I require
to write the Macro.
1) How to define and add new Conditions to existing Outlook Rule condition
choices?
2) How to Return a Boolean result from a Macro to be used in Rule condition
/action testing? ie: Return (Item.UnRead = True) ?? probably obvious to a VB
programmer .
3) What are the arguments required I assume MailBoxItem is passed as input
argument to all VBA Macros/Scripts called from OutLook client, it's weakly
documented.
4) How to set Rule execution interval to daily , and Inbox iteration?
5) What are all the properties of MailBoxItem ( I actually think it's out
there in bits and pieces.) I found UnR
6) What is the environment the VBA rule runs under ie: Context is already in
Application.Inspector or something or do all objects
Outlook/Application/Inspector etc.. need definition (Dim... As) as well as
Set (... = ???) for useage (This is probably obvious to a VB programmer..

Perhaps I will have to write an extension or Add in instead ?? seems silly
.... but.

Any help on how to write a rule to do what I want is appreciated.
GC

Ads
  #2  
Old March 23rd 09, 01:41 PM posted to microsoft.public.outlook.program_addins
Ken Slovak - [MVP - Outlook]
external usenet poster
 
Posts: 5,848
Default Outlook 2003/2007 Rule and Conditions for InBox VBA customization

A rule can call a script, which is a macro Sub with a signature that accepts
a passed MailItem. There can be no return value from a Sub, you'd have to
set a global variable.

In the context of Outlook VBA there is an Application object that always
refers to Outlook.Application.

To see the properties/methods/events exposed for any Outlook object use the
Object Browser (F2 in the Outlook VBA project). It's all in one place and
there's help available on any method/property/event by clicking F1 on
something in the Object Browser.

Unless you are using only Outlook 2007 you cannot define rules using code.
For Outlook 2007 you can use the new Rules collection, but what's available
there may or may not meet your needs. You'd have to see.

There may not be a code sample for everything you want, but there are
certainly all the bits and pieces. You can search at www.outlookcode.com for
samples covering the various pieces you want.

There is no way to run a rule at a timed interval in any version of Outlook.
You would need to use some sort of timer control to activate your code,
which would then have to call VBA macros to do the processing. If you have
VB6 installed you can put a timer control from that environment into a VBA
UserForm, otherwise you'd need to probably use a Win32 API timer class. You
can google for code that does that using VB6 at VBAccelerator.com, some
translation from VB6 to VBA would be required.

Once you have a timer established how you proceed from the timer event
handler depends on your Outlook version.

If you are using Outlook 2003 you can't call a rule from code so you'd need
to code things entirely without using rules.

For Outlook 2007, assuming that the available Rule object model can do what
you want you can instantiate a Rule object for that rule and call its
Execute method to execute the rule.

If the Rule object model can't do what you want you're back to pure VBA
code, without using rules at all.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"GreyCoderII" wrote in message
...
I would like Outlook to periodically examine my inbox items to do some
automated cleanup. Unfortunately the basic functionality of Rules Wizard
does
not provide the two Conditions and Time interval setting I need to test to
apply an action. So I believe I must write a VBA Script to perform the
actions.

Outlook (out of the box) seems to be missing ability to set conditions on
any of the MailBoxItem properties (only some...) , and is missing a Check
Messages Periodically interval where Check either when arrive or when sent
exists.

I want to daily (After midnight) check all InBox items that are from
certain
addresses (condition for rule exists), AND where the Item Property is
MailBoxItem.UnRead (does not exist in selection conditions presently) ,
and
the Item.DateReceived is 7 days from todays date ie: item is older than
7
days, and then Move the item to another folder (Action can be set in
current
Rules choices)

I am not VB/VBA programmer but I have done a little VB work , There are
no
samples (or MS documentation) around that define all of the pieces I
require
to write the Macro.
1) How to define and add new Conditions to existing Outlook Rule condition
choices?
2) How to Return a Boolean result from a Macro to be used in Rule
condition
/action testing? ie: Return (Item.UnRead = True) ?? probably obvious to a
VB
programmer .
3) What are the arguments required I assume MailBoxItem is passed as input
argument to all VBA Macros/Scripts called from OutLook client, it's weakly
documented.
4) How to set Rule execution interval to daily , and Inbox iteration?
5) What are all the properties of MailBoxItem ( I actually think it's out
there in bits and pieces.) I found UnR
6) What is the environment the VBA rule runs under ie: Context is already
in
Application.Inspector or something or do all objects
Outlook/Application/Inspector etc.. need definition (Dim... As) as well as
Set (... = ???) for useage (This is probably obvious to a VB programmer..

Perhaps I will have to write an extension or Add in instead ?? seems silly
... but.

Any help on how to write a rule to do what I want is appreciated.
GC


  #3  
Old March 23rd 09, 03:23 PM posted to microsoft.public.outlook.program_addins
GreyCoderII
external usenet poster
 
Posts: 2
Default Outlook 2003/2007 Rule and Conditions for InBox VBA customization

Thank you Ken. Looks like I'll need to do some research and amalgamation of
techniques etc., the guideposts you suggested help .

Should there not be a way in which I could derive and enhance existing forms
and values and dialogs to add what I want?, ie: I wonder if I can wrap/derive
extend existing classes in Outlook Rules Wizard (Start from Blank rule) (and
add) a timer event so rule wizard lists "Check item in this folder Daily" ,
and Conditions for testing in Macro's Ie add a condition "If item is unread"
and condition "If Item is older than n days" . I guess the timer even routine
would need to examine the rules tree, etc...

Perhaps I should investigate a C# Plugin and add Timer etc.. And new
dialogs etc. It would just seem better to use existing UI and just add the
extensions to the existing UI and classes and selection string values etc...
I'll look at Outlook 2007 Rule Object model and probably only Outlook 2007
and later .

"GreyCoderII" wrote:

I would like Outlook to periodically examine my inbox items to do some
automated cleanup. Unfortunately the basic functionality of Rules Wizard does
not provide the two Conditions and Time interval setting I need to test to
apply an action. So I believe I must write a VBA Script to perform the
actions.

Outlook (out of the box) seems to be missing ability to set conditions on
any of the MailBoxItem properties (only some...) , and is missing a Check
Messages Periodically interval where Check either when arrive or when sent
exists.

I want to daily (After midnight) check all InBox items that are from certain
addresses (condition for rule exists), AND where the Item Property is
MailBoxItem.UnRead (does not exist in selection conditions presently) , and
the Item.DateReceived is 7 days from todays date ie: item is older than 7
days, and then Move the item to another folder (Action can be set in current
Rules choices)

I am not VB/VBA programmer but I have done a little VB work , There are no
samples (or MS documentation) around that define all of the pieces I require
to write the Macro.
1) How to define and add new Conditions to existing Outlook Rule condition
choices?
2) How to Return a Boolean result from a Macro to be used in Rule condition
/action testing? ie: Return (Item.UnRead = True) ?? probably obvious to a VB
programmer .
3) What are the arguments required I assume MailBoxItem is passed as input
argument to all VBA Macros/Scripts called from OutLook client, it's weakly
documented.
4) How to set Rule execution interval to daily , and Inbox iteration?
5) What are all the properties of MailBoxItem ( I actually think it's out
there in bits and pieces.) I found UnR
6) What is the environment the VBA rule runs under ie: Context is already in
Application.Inspector or something or do all objects
Outlook/Application/Inspector etc.. need definition (Dim... As) as well as
Set (... = ???) for useage (This is probably obvious to a VB programmer..

Perhaps I will have to write an extension or Add in instead ?? seems silly
... but.

Any help on how to write a rule to do what I want is appreciated.
GC

  #4  
Old March 23rd 09, 08:35 PM posted to microsoft.public.outlook.program_addins
Ken Slovak - [MVP - Outlook]
external usenet poster
 
Posts: 5,848
Default Outlook 2003/2007 Rule and Conditions for InBox VBA customization

Those ideas are nice but they don't buy you anything, nor does a COM addin.
There's nothing you can do there that you can't do in VBA, other than use a
different timer object. My guess is that you will end up having to do what I
suggested.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"GreyCoderII" wrote in message
...
Thank you Ken. Looks like I'll need to do some research and amalgamation
of
techniques etc., the guideposts you suggested help .

Should there not be a way in which I could derive and enhance existing
forms
and values and dialogs to add what I want?, ie: I wonder if I can
wrap/derive
extend existing classes in Outlook Rules Wizard (Start from Blank rule)
(and
add) a timer event so rule wizard lists "Check item in this folder Daily"
,
and Conditions for testing in Macro's Ie add a condition "If item is
unread"
and condition "If Item is older than n days" . I guess the timer even
routine
would need to examine the rules tree, etc...

Perhaps I should investigate a C# Plugin and add Timer etc.. And new
dialogs etc. It would just seem better to use existing UI and just add the
extensions to the existing UI and classes and selection string values
etc...
I'll look at Outlook 2007 Rule Object model and probably only Outlook 2007
and later .


 




Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Custom Rule that Opens Incoming Message Meeting Conditions Chris Dunbar Outlook and VBA 2 October 15th 08 01:55 PM
Day View Customization in Outlook 2003 macrojunkie Outlook - Calandaring 2 July 18th 08 01:59 AM
Outlook 2007 Customization [email protected] Outlook - Installation 0 March 8th 08 04:41 PM
Prevent customization and stationary in Outlook 2003. Rudolf Amarlapudi Outlook - General Queries 0 August 7th 06 05:51 PM
Outlook (2007) Today Customization dstubb Outlook - Installation 0 August 3rd 06 06:08 PM


All times are GMT +1. The time now is 09:06 AM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.Search Engine Friendly URLs by vBSEO 2.4.0
Copyright ©2004-2025 Outlook Banter.
The comments are property of their posters.