Create a macro in Outlook to run a rule

Status
Not open for further replies.
K

Ken Slovak - [MVP - Outlook]

It's not a matter of what programming I want, it's if you want your code to

work you have to debug it. All programming requires that. No one can do it

for you. I think it could work, but things need debugging.

"DLGolfs" <DLGolfs> wrote in message

news:8BB94E28-A90F-4563-9513-D0C606C37B4F@microsoft.com...
> Sorry that I cannot do the programming that you want; but it does run
> without
> errors, it is just that the "rule" does not run, when I mean "nothing" I
> mean
> that the rulle does not run, it does not delete the spam in the junk
> folder.
> No boxes open, nothing happens, like I did nothing.

> I guess it just can't be done with a macro, thatnks for trying anyway,
> I'll
> just have to do it manually, which is a real pain, but so be it.
 
D

DLGolfs

I am sorry, I did not mean that you should debug it; I just don't know what I

am doing. I went to 'help" and found out what the 'locals window" is. b/c I

did not kow what it was.

I thought that I could copy /paste the result in this e-mail but I do not

see an avenue to do that.

So, I ran it w/o breaks and it just shows this but, this is probably not

helpful:

ONs nothing Name space

Ostore nothing store

colrules nothing rules

orule nothing rule

then when I put a breakpoint at the end of the set colrules o store linee,

it gives me a ton of lines, what should I look for? Most have "+" signs and

I able to expand it

At least I understand now what you want me to do.
wrote:


> Open the Locals window, that will show all variables in scope and their
> values. I mentioned that earlier in the thread.

> >

>

> "DLGolfs" <DLGolfs> wrote in message
> news:93771F75-56FC-4B23-9CF4-4F42C00E95A0@microsoft.com...
> > What are values of the vairables? Is there a way to see that?
> > All I know is if I run it and/or brekapoint it , then it either does
> > nothing, that is litterally nothing happens OR it opens VB and shows me
> > the
> > first line in yellow


> .
>
 
K

Ken Slovak - [MVP - Outlook]

If you looked at locals when the code had finished they would all be Nothing

(null). What you want to do is to put the breakpoint on the line after

colRules is set.

You should then see valid objects for NameSpace, Store and Rules objects.

For example instead of Nothing you'd be able to expand the value and see

settings such as Name.

That tells you the base objects you need are all set. Then using F8 to step

the code one executable line at a time you can execute that line of code and

see what other variables are doing. Does the rule you want get found and

instantiated as oRule, etc.

"DLGolfs" <DLGolfs> wrote in message

news:50C65353-B12F-4FBF-95A4-ED3C7AEFD141@microsoft.com...
> I am sorry, I did not mean that you should debug it; I just don't know what
> I
> am doing. I went to 'help" and found out what the 'locals window" is. b/c
> I
> did not kow what it was.
> I thought that I could copy /paste the result in this e-mail but I do not
> see an avenue to do that.

> So, I ran it w/o breaks and it just shows this but, this is probably not
> helpful:

> ONs nothing Name space
> Ostore nothing store
> colrules nothing rules
> orule nothing rule

> then when I put a breakpoint at the end of the set colrules o store linee,
> it gives me a ton of lines, what should I look for? Most have "+" signs
> and
> I able to expand it

> At least I understand now what you want me to do.
 
D

DLGolfs

OK, I put my cursor at the end of the line

Set colRules = oStore.GetRules()

right click, toggle , breakpoint, it turns brown,

click run and it shows

+module4 module4/module4

no variables

+ : oNS : : NameSpace/NameSpace

+ : oStore : : Store/Store

: colRules : Nothing : Rules

: oRule : Nothing : Rule

So I don't see Namespace, store and rules, I see what is above.

Now what? I cannot expand colRules or oRule there is no + sign

orules nothing
wrote:


> If you looked at locals when the code had finished they would all be Nothing
> (null). What you want to do is to put the breakpoint on the line after
> colRules is set.

> You should then see valid objects for NameSpace, Store and Rules objects.
> For example instead of Nothing you'd be able to expand the value and see
> settings such as Name.

> That tells you the base objects you need are all set. Then using F8 to step
> the code one executable line at a time you can execute that line of code and
> see what other variables are doing. Does the rule you want get found and
> instantiated as oRule, etc.

> >

>

> "DLGolfs" <DLGolfs> wrote in message
> news:50C65353-B12F-4FBF-95A4-ED3C7AEFD141@microsoft.com...
> >I am sorry, I did not mean that you should debug it; I just don't know what
> >I
> > am doing. I went to 'help" and found out what the 'locals window" is. b/c
> > I
> > did not kow what it was.
> > I thought that I could copy /paste the result in this e-mail but I do not
> > see an avenue to do that.
> > So, I ran it w/o breaks and it just shows this but, this is probably not
> > helpful:
> > ONs nothing Name space
> > Ostore nothing store
> > colrules nothing rules
> > orule nothing rule
> > then when I put a breakpoint at the end of the set colrules o store linee,
> > it gives me a ton of lines, what should I look for? Most have "+" signs
> > and
> > I able to expand it
> > At least I understand now what you want me to do.


> .
>
 
K

Ken Slovak - [MVP - Outlook]

So what happens if you press F8 after you hit the breakpoint? You should be

in the line after setting colRules and colRules should not be Nothing and

should now have a + that you can expand to see properties such as Count,

which should have a number. Another F8 should instantiate your oRule object

and that then should not be Nothing and should be expandable to show

properties such as Name.

"DLGolfs" <DLGolfs> wrote in message

news:43B29145-FB10-4A99-9ECE-C79A3B495105@microsoft.com...
> OK, I put my cursor at the end of the line
> Set colRules = oStore.GetRules()
> right click, toggle , breakpoint, it turns brown,
> click run and it shows

> +module4 module4/module4
> no variables
> + : oNS : : NameSpace/NameSpace
> + : oStore : : Store/Store
> : colRules : Nothing : Rules
> : oRule : Nothing : Rule

> So I don't see Namespace, store and rules, I see what is above.

> Now what? I cannot expand colRules or oRule there is no + sign

> orules nothing
 
D

DLGolfs

" - " wrote:


> So what happens if you press F8 after you hit the breakpoint? You should be
> in the line after setting colRules and colRules should not be Nothing and
> should now have a + that you can expand to see properties such as Count, THERE IS NO "PROPERTIES" AND NO "COUNT"


I GET THE FOLLOWING AND WHEN i EXPAND THE ONS THERE IS NO 'COUNT" JUST

ACCOUNTS, ADDRESS LISTS, APPLICATIONS, CATERGORIES, CURRENT USER, DEFAULT

STORE, FOLDERS MAPIOBJECT, PARENT SESSION, STORES, AND SYNCOBJECTS ...DO YOU

MEAN ACCOUNT OR COUNT? THIS IS WHAT I SEE EVERYTIME, :

- : Module4 : : Module4/Module4

: oStore : Nothing : Store

: oNS : Nothing : NameSpace

: colRules : Nothing : Rules

: oRule : Nothing : Rule

OK, THEN F8 AND IT HIGHLIGHTS THE FIRST LINE AND NOTHING CHANGES AS YOU SEE

ABOVE

THEN ANOTHER F8 AND IT HIGHLIGHTS THE SET ONS LINE AND NOTHING CHANGES AS

YOU SEE ABOVE

THEN ANOTHER F8 AND IT HIGHLIGHTS THE SET OSTORE LINE AND AGAIN NOTHING

CHANGES AS YOU SEE ABOVE AND SO ON

IF SOMETHING IS CHANGING IN THE EXPANSION, IT WOULD IMPOSSIBLE FOR ME TO

TELL UNLESS YOU DIRECT ME TO A CERTAIN PLACE


> which should have a number WHERE?


> . Another F8 should instantiate your oRule object
> and that then should not be Nothing and should be expandable to show
> properties such as Name.

> >

>

> "DLGolfs" <DLGolfs> wrote in message
> news:43B29145-FB10-4A99-9ECE-C79A3B495105@microsoft.com...
> > OK, I put my cursor at the end of the line
> > Set colRules = oStore.GetRules()
> > right click, toggle , breakpoint, it turns brown,
> > click run and it shows
> > +module4 module4/module4
> > no variables
> > + : oNS : : NameSpace/NameSpace
> > + : oStore : : Store/Store
> > : colRules : Nothing : Rules
> > : oRule : Nothing : Rule
> > So I don't see Namespace, store and rules, I see what is above.
> > Now what? I cannot expand colRules or oRule there is no + sign
> > orules nothing


> .
>
 
K

Ken Slovak - [MVP - Outlook]

In case you didn't know it all caps is hard to read and is considered as

shouting.

I have no idea what's going on. If you never get valid NameSpace, Store or

Rules collection objects obviously the code will never fire the rule. But

the code to get those objects should just work.

You are running this in Outlook 2007, with nothing in the code other than

what's been shown, and no errors are fired?

Select Tools, Trust Center and select the Macro Security tab. What is the

setting there? What about on the Programmatic Access tab?

Something is drastically wrong with your setup or there's something going on

that we're not being told about. Otherwise at minimum the line setting

NameSpace would work.

"DLGolfs" <DLGolfs> wrote in message

news:CEDFD29B-BBE1-4B0E-AD39-A32D56A67C39@microsoft.com...

> " - " wrote:
>
> > So what happens if you press F8 after you hit the breakpoint? You should
> > be
> > in the line after setting colRules and colRules should not be Nothing and
> > should now have a + that you can expand to see properties such as Count,
> > THERE IS NO "PROPERTIES" AND NO "COUNT"


> I GET THE FOLLOWING AND WHEN i EXPAND THE ONS THERE IS NO 'COUNT" JUST
> ACCOUNTS, ADDRESS LISTS, APPLICATIONS, CATERGORIES, CURRENT USER, DEFAULT
> STORE, FOLDERS MAPIOBJECT, PARENT SESSION, STORES, AND SYNCOBJECTS ...DO
> YOU
> MEAN ACCOUNT OR COUNT? THIS IS WHAT I SEE EVERYTIME, :
> - : Module4 : : Module4/Module4
> : oStore : Nothing : Store
> : oNS : Nothing : NameSpace
> : colRules : Nothing : Rules
> : oRule : Nothing : Rule
> OK, THEN F8 AND IT HIGHLIGHTS THE FIRST LINE AND NOTHING CHANGES AS YOU
> SEE
> ABOVE
> THEN ANOTHER F8 AND IT HIGHLIGHTS THE SET ONS LINE AND NOTHING CHANGES AS
> YOU SEE ABOVE
> THEN ANOTHER F8 AND IT HIGHLIGHTS THE SET OSTORE LINE AND AGAIN NOTHING
> CHANGES AS YOU SEE ABOVE AND SO ON
> IF SOMETHING IS CHANGING IN THE EXPANSION, IT WOULD IMPOSSIBLE FOR ME TO
> TELL UNLESS YOU DIRECT ME TO A CERTAIN PLACE
 
D

DLGolfs

Well , I answered you some time ago so I guess you have given up on me.

Sorry I don't know how to program, I put what you wrote and it did not work.

I really thought that is what the disussion groups are for, to help people

like me who know nothing about programming. I guess I'll have to try someone

else to give me the answer.

If you were offended by the CAPS, then I don't kow what to say about that!

WHy would I do someone to offend someone who is helping me? Truth is, i

wouldn't.

Oh well so be it.
wrote:


> Open the Locals window, that will show all variables in scope and their
> values. I mentioned that earlier in the thread.

> >

>

> "DLGolfs" <DLGolfs> wrote in message
> news:93771F75-56FC-4B23-9CF4-4F42C00E95A0@microsoft.com...
> > What are values of the vairables? Is there a way to see that?
> > All I know is if I run it and/or brekapoint it , then it either does
> > nothing, that is litterally nothing happens OR it opens VB and shows me
> > the
> > first line in yellow


> .
>
 
K

Ken Slovak - [MVP - Outlook]

I had answered each one of your posts. Then you started a new thread and I

figured you decided to try to get answers from someone else. So I left that

thread alone.

I'm certainly willing to continue to try to help, but I'm really at a loss.

As I said in my last post, other than the information about caps, which did

not offend me:

I have no idea what's going on. If you never get valid NameSpace, Store or

Rules collection objects obviously the code will never fire the rule. But

the code to get those objects should just work.

You are running this in Outlook 2007, with nothing in the code other than

what's been shown, and no errors are fired?

Select Tools, Trust Center and select the Macro Security tab. What is the

setting there? What about on the Programmatic Access tab?

Something is drastically wrong with your setup or there's something going on

that we're not being told about. Otherwise at minimum the line setting

NameSpace would work.

The first thing, before any rules stuff, is that you should be getting a

valid NameSpace object. If you aren't then something is drastically wrong

that must be corrected before any of your code will run at all. I'd be

curious about the security settings as I asked, and I'd also be curious to

see if you are running an anti-virus program that maybe is breaking code

with a script stopper.

"DLGolfs" <DLGolfs> wrote in message

news:ADB2FBB6-F453-4162-A23F-E74C6418190E@microsoft.com...
> Well , I answered you some time ago so I guess you have given up on me.
> Sorry I don't know how to program, I put what you wrote and it did not
> work.
> I really thought that is what the disussion groups are for, to help people
> like me who know nothing about programming. I guess I'll have to try
> someone
> else to give me the answer.

> If you were offended by the CAPS, then I don't kow what to say about that!
> WHy would I do someone to offend someone who is helping me? Truth is, i
> wouldn't.
> Oh well so be it.
 
D

DLGolfs

Ken:

First, I went to someone else b/c I left my reply on 3/16 and had not heard

anyting and gave up on 3/22, that is why I tried someone else.

Secondly, I gave you all these security settings already in an earlier post.

from 3/16 but here it is again: So I'll do it this way:

Yes, OUtlook 2007, no errors, when I run the macro through OUtlook, it opens

VB and highlights the Setcol Rules line, that is it, not errors

Programming says "warn me about suspicious.....(recommended)"

Warnings for all macros

Warn me about suspecious activity when my , etc etc

Bottom line, is that you wrote the program, not me, and I used a lot of time

to figure out what you were asking and tried to answer the best of my

ability. I gave up b/c I had not heard from you in 6 days, hey maybe you

were on vacation, but I just figured you got pissed off and was frustrated

that I was SO dumb about this.

My rule runs fine manually, it is call Delete Spam, I copied and pasted your

programming into VBA, enabled macros. Opened the junk folder, clicked on

macros, run the delete spam macro and all it does is highlight my first

e-mail in the junk folder, no errors nothing.

So maybe delete everything and start over. I have not gotten a response

from my other posts, just ignored me, oh well, so be it.

So whatever you want to do is fine with me.

You wrote:

The first thing, before any rules stuff, is that you should be getting a

valid NameSpace object. I If you aren't then something is drastically wrong

that must be corrected before any of your code will run at all. I'd be

curious about the security settings as I asked, and I'd also be curious to

see if you are running an anti-virus program that maybe is breaking code

with a script stopper.

I don't know what a valid NameSpace object looks like

I do run an anti-virus program called Avira, I can look to see if it is

stopping scripts but doubt it b/c I would have other indications of this,

don't you think?

Sorry about all this, but I just thought that you had given up on me!
wrote:


> I had answered each one of your posts. Then you started a new thread and I
> figured you decided to try to get answers from someone else. So I left that
> thread alone.

> I'm certainly willing to continue to try to help, but I'm really at a loss.
> As I said in my last post, other than the information about caps, which did
> not offend me:

> I have no idea what's going on. If you never get valid NameSpace, Store or
> Rules collection objects obviously the code will never fire the rule. But
> the code to get those objects should just work.

> You are running this in Outlook 2007, with nothing in the code other than
> what's been shown, and no errors are fired?

> Select Tools, Trust Center and select the Macro Security tab. What is the
> setting there? What about on the Programmatic Access tab?

> Something is drastically wrong with your setup or there's something going on
> that we're not being told about. Otherwise at minimum the line setting
> NameSpace would work.

> The first thing, before any rules stuff, is that you should be getting a
> valid NameSpace object. If you aren't then something is drastically wrong
> that must be corrected before any of your code will run at all. I'd be
> curious about the security settings as I asked, and I'd also be curious to
> see if you are running an anti-virus program that maybe is breaking code
> with a script stopper.

> >

>

> "DLGolfs" <DLGolfs> wrote in message
> news:ADB2FBB6-F453-4162-A23F-E74C6418190E@microsoft.com...
> > Well , I answered you some time ago so I guess you have given up on me.
> > Sorry I don't know how to program, I put what you wrote and it did not
> > work.
> > I really thought that is what the disussion groups are for, to help people
> > like me who know nothing about programming. I guess I'll have to try
> > someone
> > else to give me the answer.
> > If you were offended by the CAPS, then I don't kow what to say about that!
> > WHy would I do someone to offend someone who is helping me? Truth is, i
> > wouldn't.
> > Oh well so be it.


> .
>
 
K

Ken Slovak - [MVP - Outlook]

I have no idea what's wrong. From what you've said none of the object such

as NameSpace or the Rules collection are ever anything other than Nothing.

That's why the code isn't running, but I don't know why. I've never seen any

situation like what you describe.

Let's see if we can get any code to run at all. Put this in the same code

module you have your rules code:

Sub Test

MsgBox "This is a test"

End Sub

Put your cursor on the MsgBox line and press F5. Do you get the MsgBox

dialog?

"DLGolfs" <DLGolfs> wrote in message

news:F1F8BFFE-26EF-4257-B70B-A4FA6A8D27AD@microsoft.com...
> Ken:
> First, I went to someone else b/c I left my reply on 3/16 and had not
> heard
> anyting and gave up on 3/22, that is why I tried someone else.

> Secondly, I gave you all these security settings already in an earlier
> post.
> from 3/16 but here it is again: So I'll do it this way:
> Yes, OUtlook 2007, no errors, when I run the macro through OUtlook, it
> opens
> VB and highlights the Setcol Rules line, that is it, not errors

> Programming says "warn me about suspicious.....(recommended)"

> Warnings for all macros
> Warn me about suspecious activity when my , etc etc
> Bottom line, is that you wrote the program, not me, and I used a lot of
> time
> to figure out what you were asking and tried to answer the best of my
> ability. I gave up b/c I had not heard from you in 6 days, hey maybe you
> were on vacation, but I just figured you got pissed off and was frustrated
> that I was SO dumb about this.

> My rule runs fine manually, it is call Delete Spam, I copied and pasted
> your
> programming into VBA, enabled macros. Opened the junk folder, clicked on
> macros, run the delete spam macro and all it does is highlight my first
> e-mail in the junk folder, no errors nothing.

> So maybe delete everything and start over. I have not gotten a response
> from my other posts, just ignored me, oh well, so be it.
> So whatever you want to do is fine with me.

> You wrote:

> The first thing, before any rules stuff, is that you should be getting a
> valid NameSpace object. I If you aren't then something is drastically
> wrong
> that must be corrected before any of your code will run at all. I'd be
> curious about the security settings as I asked, and I'd also be curious to
> see if you are running an anti-virus program that maybe is breaking code
> with a script stopper.
> I don't know what a valid NameSpace object looks like
> I do run an anti-virus program called Avira, I can look to see if it is
> stopping scripts but doubt it b/c I would have other indications of this,
> don't you think?
> Sorry about all this, but I just thought that you had given up on me!
 
D

DLGolfs

Here is what I have in the VBA:

Sub RunRuleDeleteSpam()

Dim oNS As Outlook.NameSpace

Dim oStore As Outlook.Store

Dim colRules As Outlook.Rules

Dim oRule As Outlook.Rule

Set oNS = Application.GetNamespace("MAPI")

Set oStore = oNS.DefaultStore

Set colRules = oStore.Rules()

Set oRule = colRules.Item("Delete Spam")

oRule.Execute

End Sub

Sub Test()

MsgBox "This is a test"

End Sub

When I put the cursor at the new sub Test() it runs and a dialog box opens

that says "this is a test"

When I put the cursor at the beginning of subrunrule, then it gives me a 438

error, I hit debug and highlights the setcolrules line in the second section.

Hope that helps you
wrote:


> I have no idea what's wrong. From what you've said none of the object such
> as NameSpace or the Rules collection are ever anything other than Nothing.
> That's why the code isn't running, but I don't know why. I've never seen any
> situation like what you describe.

> Let's see if we can get any code to run at all. Put this in the same code
> module you have your rules code:

> Sub Test
> MsgBox "This is a test"
> End Sub

> Put your cursor on the MsgBox line and press F5. Do you get the MsgBox
> dialog?

> >

>

> "DLGolfs" <DLGolfs> wrote in message
> news:F1F8BFFE-26EF-4257-B70B-A4FA6A8D27AD@microsoft.com...
> > Ken:
> > First, I went to someone else b/c I left my reply on 3/16 and had not
> > heard
> > anyting and gave up on 3/22, that is why I tried someone else.
> > Secondly, I gave you all these security settings already in an earlier
> > post.
> > from 3/16 but here it is again: So I'll do it this way:
> > Yes, OUtlook 2007, no errors, when I run the macro through OUtlook, it
> > opens
> > VB and highlights the Setcol Rules line, that is it, not errors
> > Programming says "warn me about suspicious.....(recommended)"
> > Warnings for all macros
> > Warn me about suspecious activity when my , etc etc
> > Bottom line, is that you wrote the program, not me, and I used a lot of
> > time
> > to figure out what you were asking and tried to answer the best of my
> > ability. I gave up b/c I had not heard from you in 6 days, hey maybe you
> > were on vacation, but I just figured you got pissed off and was frustrated
> > that I was SO dumb about this.
> > My rule runs fine manually, it is call Delete Spam, I copied and pasted
> > your
> > programming into VBA, enabled macros. Opened the junk folder, clicked on
> > macros, run the delete spam macro and all it does is highlight my first
> > e-mail in the junk folder, no errors nothing.
> > So maybe delete everything and start over. I have not gotten a response
> > from my other posts, just ignored me, oh well, so be it.
> > So whatever you want to do is fine with me.
> > You wrote:
> > The first thing, before any rules stuff, is that you should be getting a
> > valid NameSpace object. I If you aren't then something is drastically
> > wrong
> > that must be corrected before any of your code will run at all. I'd be
> > curious about the security settings as I asked, and I'd also be curious to
> > see if you are running an anti-virus program that maybe is breaking code
> > with a script stopper.
> > I don't know what a valid NameSpace object looks like
> > I do run an anti-virus program called Avira, I can look to see if it is
> > stopping scripts but doubt it b/c I would have other indications of this,
> > don't you think?
> > Sorry about all this, but I just thought that you had given up on me!


> .
>
 
K

Ken Slovak - [MVP - Outlook]

OK, so at least some VBA code can run.

Let's try adding additional testing and error handling to see more of what's

going on here. I'm still mystified as to what's happening. You are running

in Outlook 2007, correct?

Sub RunRuleDeleteSpam2()

Dim oNS As Outlook.NameSpace

Dim oStore As Outlook.Store

Dim colRules As Outlook.Rules

Dim oRule As Outlook.Rule

Set oNS = Application.GetNamespace("MAPI")

If Not (oNs Is Nothing) Then

Set oStore = oNS.DefaultStore

If Not (oStore Is Nothing) Then

Set colRules = oStore.Rules()

If Not (colRules Is Nothing) Then

Set oRule = colRules.Item("Delete Spam")

If Not (oRule Is Nothing) Then

oRule.Execute

Else

MsgBox "Rule Delete Spam is nothing"

End If

Else

MsgBox "Rules collection is nothing"

End If

Else

MsgBox "Default Store is nothing"

End If

Else

MsgBox "NameSpace is nothing"

End If

End Sub

Try this new code that provides a little more information. I don't think it

will work or help though, I think something very odd is going on that might

not be possible to figure out via newsgroup posts.

"DLGolfs" <DLGolfs> wrote in message

news:9633707F-5BF9-4B66-98FA-89D012F3CBBC@microsoft.com...
> Here is what I have in the VBA:
> Sub RunRuleDeleteSpam()
> Dim oNS As Outlook.NameSpace
> Dim oStore As Outlook.Store
> Dim colRules As Outlook.Rules
> Dim oRule As Outlook.Rule

> Set oNS = Application.GetNamespace("MAPI")
> Set oStore = oNS.DefaultStore
> Set colRules = oStore.Rules()
> Set oRule = colRules.Item("Delete Spam")
> oRule.Execute
> End Sub

> Sub Test()
> MsgBox "This is a test"
> End Sub

> When I put the cursor at the new sub Test() it runs and a dialog box opens
> that says "this is a test"
> When I put the cursor at the beginning of subrunrule, then it gives me a
> 438
> error, I hit debug and highlights the setcolrules line in the second
> section.

> Hope that helps you
 
Status
Not open for further replies.
Top