Determine which commandbar called a function

S

Sgt Waddle

Hello,

I have been using the following function to change the faceid on a
commandbar button once it has been clicked:

Function ChangeFace()
Dim OldCTRL

Set OldCTRL =
CommandBars("SHOW").Controls(CommandBars.ActionControl.Caption)

OldCTRL.FaceId = 1087

OldCTRL.Style = msoButtonIconAndCaptionBelow
End Function

The function is called when each button is clicked.

the line Set OldCTRL = CommandBars("SHOW").Controls
CommandBars.ActionControl.Caption) sets which button on the commandbar named
SHOW called the function.

I would like to be able to capture which commandbar and which button called
the function so I can use the same function from different commandbars.

Something like (pseudo code)
Set OldCTRL =
CommandBars(ActiveCommandBar).Controls(CommandBars.ActionControl.Caption)

Any help is greatly appreciated,
Kevin
 
J

Jim Cone

Just use...
Set OldCtrl = Application.CommandBars.ActionControl
And...
OldCtrl.Parent will return the controls location, but there is no need for this in the situation you describe.
--
Jim Cone
Portland, Oregon USA



"Sgt Waddle"
wrote in message
Hello,
I have been using the following function to change the faceid on a
commandbar button once it has been clicked:

Function ChangeFace()
Dim OldCTRL
Set OldCTRL =
CommandBars("SHOW").Controls(CommandBars.ActionControl.Caption)
OldCTRL.FaceId = 1087
OldCTRL.Style = msoButtonIconAndCaptionBelow
End Function

The function is called when each button is clicked.
the line Set OldCTRL = CommandBars("SHOW").Controls
CommandBars.ActionControl.Caption) sets which button on the commandbar named
SHOW called the function.
I would like to be able to capture which commandbar and which button called
the function so I can use the same function from different commandbars.
Something like (pseudo code)
Set OldCTRL =
CommandBars(ActiveCommandBar).Controls(CommandBars.ActionControl.Caption)

Any help is greatly appreciated,
Kevin
 
S

Sqt Waddle

A little Google and 'Bob's your uncle!'

I did not need to name the CommandBar

Function ChangeFace()
Application.CommandBars.ActionControl.Style = msoButtonIconAndCaptionBelow
Application.CommandBars.ActionControl.FaceId = 1087
End Function

Thanks!
 
S

Sqt Waddle

Jim,

I didn't see your reply until after I solved it.

Thanks for taking the time to reply.
Kevin
 

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

Top