Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 177
Default How to create "modern" controls on a worksheet

I have an add-in that dynamically creates various kinds of OLE controls on a
worksheet. I use code like the following:

ActiveSheet.OLEObjects.Add(ClassType:="Forms.Comma ndButton.1", ...
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combo Box.1", ...

I need to use OLE objects rather than say Form controls (which at least in
the case of combo boxes look a little better) because I need the events
exposed by the OLE objects.

Anyway, all of this works fine and has been stabile for years. Buy my users
increasingly complain about the aesthetics of these controls. Without being
to precise, I think the above code results in Windows 3.1 controls being
created (OK, maybe its Win95) and they just look like old clunkers.

I'm looking for a way to create contemporary WinXP (or perhaps even Vista)
controls on my worksheets. I need command buttons, combo-boxes, text-boxes,
list-box, option button and check-box controls. Installing a new dll or ocx
onto my user's systems to make this happen would be OK.

Anybody got any bright ideas?

TIA,

josh


  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,290
Default How to create "modern" controls on a worksheet


The command button control (and others) have a picture property.
You can get free Vista pictures off the internet.
Try some of those on your controls. You can link the pictures
to the controls or simply paste the pictures into the picture property.

Are you sure it isn't the developer that cares about "modern" controls
and not the users? <g
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware



"Josh Sale" <jsale@tril dot cod
wrote in message
I have an add-in that dynamically creates various kinds of OLE controls on a
worksheet. I use code like the following:

ActiveSheet.OLEObjects.Add(ClassType:="Forms.Comma ndButton.1", ...
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combo Box.1", ...

I need to use OLE objects rather than say Form controls (which at least in
the case of combo boxes look a little better) because I need the events
exposed by the OLE objects.

Anyway, all of this works fine and has been stabile for years. Buy my users
increasingly complain about the aesthetics of these controls. Without being
to precise, I think the above code results in Windows 3.1 controls being
created (OK, maybe its Win95) and they just look like old clunkers.

I'm looking for a way to create contemporary WinXP (or perhaps even Vista)
controls on my worksheets. I need command buttons, combo-boxes, text-boxes,
list-box, option button and check-box controls. Installing a new dll or ocx
onto my user's systems to make this happen would be OK.

Anybody got any bright ideas?
TIA,
josh


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 177
Default How to create "modern" controls on a worksheet

Starting with your last point ... I could care less. However I've been
hearing this drumbeat for years and have been ignoring it thinking "there
must be more important things to worry about then these cosmetics". But the
beat goes on and in fact intensifies. If you remember the old "Lucky"
commercials well then I'm the opposite ... I'd rather switch than fight!

As you point out, command buttons do have a picture property. But that
really doesn't do it for me. Here are two immediate problems:

First, I need to be able to dynamically set the caption of the buttons. You
can't do that if the button face is coming from a graphic image.

Second setting the picture property doesn't really address the user's
complaints. They want "modern" controls. So for example, when you roll the
mouse over a modern command button, it gets a "highlight". This doesn't
happen when you set the object's Picture property. OK ... perhaps there is
a mouse_over event I can trap and load a new picture into each command
button as the mouse rolls over it (although I actually think there may be no
such event), this is way overboard. I shouldn't have to try to replicate
all of the "modern" behaviors of these controls in my code. Its a waste of
my time, I'll never get it 100% right and I'll have to make a career of it
(e.g., next Vista and then whatever follows that).

Finally, not withstanding any of the above, the Picture solution isn't a
complete solution for me. As I mentioned, I need other controls like a
combo box which don't have Picture properties.

I have to believe there is someway to get the "native" controls onto a
worksheet.

Any other suggestions?

Thanks,

josh



"Jim Cone" wrote in message
...

The command button control (and others) have a picture property.
You can get free Vista pictures off the internet.
Try some of those on your controls. You can link the pictures
to the controls or simply paste the pictures into the picture property.

Are you sure it isn't the developer that cares about "modern" controls
and not the users? <g
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware



"Josh Sale" <jsale@tril dot cod
wrote in message
I have an add-in that dynamically creates various kinds of OLE controls on
a
worksheet. I use code like the following:

ActiveSheet.OLEObjects.Add(ClassType:="Forms.Comma ndButton.1", ...
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combo Box.1", ...

I need to use OLE objects rather than say Form controls (which at least in
the case of combo boxes look a little better) because I need the events
exposed by the OLE objects.

Anyway, all of this works fine and has been stabile for years. Buy my
users
increasingly complain about the aesthetics of these controls. Without
being
to precise, I think the above code results in Windows 3.1 controls being
created (OK, maybe its Win95) and they just look like old clunkers.

I'm looking for a way to create contemporary WinXP (or perhaps even Vista)
controls on my worksheets. I need command buttons, combo-boxes,
text-boxes,
list-box, option button and check-box controls. Installing a new dll or
ocx
onto my user's systems to make this happen would be OK.

Anybody got any bright ideas?
TIA,
josh




  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 4,391
Default How to create "modern" controls on a worksheet

You are free to use any* ActiveX control that is installed on the user's
system and if you have an Installer routine, you can add new controls to
system. Obviously this becomes more complex than just sending a WB, but
installation should only be a one-time thing.

* Actually, there are some limitations in which Active controls you can use;
the control must expose the certain interfaces:
http://support.microsoft.com/kb/168392
Whilst is quite old, I believe it still applies to Excel.

NickHK

"Josh Sale" <jsale@tril dot cod wrote in message
...
Starting with your last point ... I could care less. However I've been
hearing this drumbeat for years and have been ignoring it thinking "there
must be more important things to worry about then these cosmetics". But

the
beat goes on and in fact intensifies. If you remember the old "Lucky"
commercials well then I'm the opposite ... I'd rather switch than fight!

As you point out, command buttons do have a picture property. But that
really doesn't do it for me. Here are two immediate problems:

First, I need to be able to dynamically set the caption of the buttons.

You
can't do that if the button face is coming from a graphic image.

Second setting the picture property doesn't really address the user's
complaints. They want "modern" controls. So for example, when you roll

the
mouse over a modern command button, it gets a "highlight". This doesn't
happen when you set the object's Picture property. OK ... perhaps there

is
a mouse_over event I can trap and load a new picture into each command
button as the mouse rolls over it (although I actually think there may be

no
such event), this is way overboard. I shouldn't have to try to replicate
all of the "modern" behaviors of these controls in my code. Its a waste

of
my time, I'll never get it 100% right and I'll have to make a career of it
(e.g., next Vista and then whatever follows that).

Finally, not withstanding any of the above, the Picture solution isn't a
complete solution for me. As I mentioned, I need other controls like a
combo box which don't have Picture properties.

I have to believe there is someway to get the "native" controls onto a
worksheet.

Any other suggestions?

Thanks,

josh



"Jim Cone" wrote in message
...

The command button control (and others) have a picture property.
You can get free Vista pictures off the internet.
Try some of those on your controls. You can link the pictures
to the controls or simply paste the pictures into the picture property.

Are you sure it isn't the developer that cares about "modern" controls
and not the users? <g
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware



"Josh Sale" <jsale@tril dot cod
wrote in message
I have an add-in that dynamically creates various kinds of OLE controls

on
a
worksheet. I use code like the following:

ActiveSheet.OLEObjects.Add(ClassType:="Forms.Comma ndButton.1", ...
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combo Box.1", ...

I need to use OLE objects rather than say Form controls (which at least

in
the case of combo boxes look a little better) because I need the events
exposed by the OLE objects.

Anyway, all of this works fine and has been stabile for years. Buy my
users
increasingly complain about the aesthetics of these controls. Without
being
to precise, I think the above code results in Windows 3.1 controls being
created (OK, maybe its Win95) and they just look like old clunkers.

I'm looking for a way to create contemporary WinXP (or perhaps even

Vista)
controls on my worksheets. I need command buttons, combo-boxes,
text-boxes,
list-box, option button and check-box controls. Installing a new dll or
ocx
onto my user's systems to make this happen would be OK.

Anybody got any bright ideas?
TIA,
josh






  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 182
Default How to create "modern" controls on a worksheet

Hi Josh,

I ever have a tought like yours...
but it will be more simple in coding if you use a userform that embeded with
controls (OCX) on it.

But then I use VB6 form to make it realize... finnaly I get my XPvisual in
the Forms controls... with comctl32 V.5 in my environment of XP SP2.
then I used *.exe.manifest file to make it XP style.

Try that way... that I;ve tried but more complicated code in it.

--

Regards,

Halim


"Josh Sale" wrote:

Starting with your last point ... I could care less. However I've been
hearing this drumbeat for years and have been ignoring it thinking "there
must be more important things to worry about then these cosmetics". But the
beat goes on and in fact intensifies. If you remember the old "Lucky"
commercials well then I'm the opposite ... I'd rather switch than fight!

As you point out, command buttons do have a picture property. But that
really doesn't do it for me. Here are two immediate problems:

First, I need to be able to dynamically set the caption of the buttons. You
can't do that if the button face is coming from a graphic image.

Second setting the picture property doesn't really address the user's
complaints. They want "modern" controls. So for example, when you roll the
mouse over a modern command button, it gets a "highlight". This doesn't
happen when you set the object's Picture property. OK ... perhaps there is
a mouse_over event I can trap and load a new picture into each command
button as the mouse rolls over it (although I actually think there may be no
such event), this is way overboard. I shouldn't have to try to replicate
all of the "modern" behaviors of these controls in my code. Its a waste of
my time, I'll never get it 100% right and I'll have to make a career of it
(e.g., next Vista and then whatever follows that).

Finally, not withstanding any of the above, the Picture solution isn't a
complete solution for me. As I mentioned, I need other controls like a
combo box which don't have Picture properties.

I have to believe there is someway to get the "native" controls onto a
worksheet.

Any other suggestions?

Thanks,

josh



"Jim Cone" wrote in message
...

The command button control (and others) have a picture property.
You can get free Vista pictures off the internet.
Try some of those on your controls. You can link the pictures
to the controls or simply paste the pictures into the picture property.

Are you sure it isn't the developer that cares about "modern" controls
and not the users? <g
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware



"Josh Sale" <jsale@tril dot cod
wrote in message
I have an add-in that dynamically creates various kinds of OLE controls on
a
worksheet. I use code like the following:

ActiveSheet.OLEObjects.Add(ClassType:="Forms.Comma ndButton.1", ...
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combo Box.1", ...

I need to use OLE objects rather than say Form controls (which at least in
the case of combo boxes look a little better) because I need the events
exposed by the OLE objects.

Anyway, all of this works fine and has been stabile for years. Buy my
users
increasingly complain about the aesthetics of these controls. Without
being
to precise, I think the above code results in Windows 3.1 controls being
created (OK, maybe its Win95) and they just look like old clunkers.

I'm looking for a way to create contemporary WinXP (or perhaps even Vista)
controls on my worksheets. I need command buttons, combo-boxes,
text-boxes,
list-box, option button and check-box controls. Installing a new dll or
ocx
onto my user's systems to make this happen would be OK.

Anybody got any bright ideas?
TIA,
josh







  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 177
Default How to create "modern" controls on a worksheet

Thanks Nick. This sounds like music to my ears! A few follow-up questions:

- So would I create (say) such a command button using CreateObject?
GetObject? OLEObjects.Add?

- Do you know the name (file or class) of the "common" controls used by
WinXP? By Vista?

- The KB article you pointed me to indicates that these ActiveX controls
must support the IDataObject interface. Do you happen to know if WinXP's
"common" controls support this interface?

- Once I create one of these ActiveX controls, can I position it on the
worksheet the way I do my current controls (e.g., by setting its Top, Left,
Width and Height properties)? Will the Top and Left properties take values
from the same coordinate system as I currently use for the existing
controls?

- Once I create one of these ActiveX controls, will I be able to field
events as I currently do (e.g., Sub object_name_MouseDown(...))?

I'm sure I can figure out the answers to some of these questions once I get
started, but if you have any pointers I'd really appreciate it.

Thanks,

josh






"NickHK" wrote in message
...
You are free to use any* ActiveX control that is installed on the user's
system and if you have an Installer routine, you can add new controls to
system. Obviously this becomes more complex than just sending a WB, but
installation should only be a one-time thing.

* Actually, there are some limitations in which Active controls you can
use;
the control must expose the certain interfaces:
http://support.microsoft.com/kb/168392
Whilst is quite old, I believe it still applies to Excel.

NickHK

"Josh Sale" <jsale@tril dot cod wrote in message
...
Starting with your last point ... I could care less. However I've been
hearing this drumbeat for years and have been ignoring it thinking "there
must be more important things to worry about then these cosmetics". But

the
beat goes on and in fact intensifies. If you remember the old "Lucky"
commercials well then I'm the opposite ... I'd rather switch than fight!

As you point out, command buttons do have a picture property. But that
really doesn't do it for me. Here are two immediate problems:

First, I need to be able to dynamically set the caption of the buttons.

You
can't do that if the button face is coming from a graphic image.

Second setting the picture property doesn't really address the user's
complaints. They want "modern" controls. So for example, when you roll

the
mouse over a modern command button, it gets a "highlight". This doesn't
happen when you set the object's Picture property. OK ... perhaps there

is
a mouse_over event I can trap and load a new picture into each command
button as the mouse rolls over it (although I actually think there may be

no
such event), this is way overboard. I shouldn't have to try to replicate
all of the "modern" behaviors of these controls in my code. Its a waste

of
my time, I'll never get it 100% right and I'll have to make a career of
it
(e.g., next Vista and then whatever follows that).

Finally, not withstanding any of the above, the Picture solution isn't a
complete solution for me. As I mentioned, I need other controls like a
combo box which don't have Picture properties.

I have to believe there is someway to get the "native" controls onto a
worksheet.

Any other suggestions?

Thanks,

josh



"Jim Cone" wrote in message
...

The command button control (and others) have a picture property.
You can get free Vista pictures off the internet.
Try some of those on your controls. You can link the pictures
to the controls or simply paste the pictures into the picture property.

Are you sure it isn't the developer that cares about "modern" controls
and not the users? <g
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware



"Josh Sale" <jsale@tril dot cod
wrote in message
I have an add-in that dynamically creates various kinds of OLE controls

on
a
worksheet. I use code like the following:

ActiveSheet.OLEObjects.Add(ClassType:="Forms.Comma ndButton.1", ...
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combo Box.1", ...

I need to use OLE objects rather than say Form controls (which at least

in
the case of combo boxes look a little better) because I need the events
exposed by the OLE objects.

Anyway, all of this works fine and has been stabile for years. Buy my
users
increasingly complain about the aesthetics of these controls. Without
being
to precise, I think the above code results in Windows 3.1 controls
being
created (OK, maybe its Win95) and they just look like old clunkers.

I'm looking for a way to create contemporary WinXP (or perhaps even

Vista)
controls on my worksheets. I need command buttons, combo-boxes,
text-boxes,
list-box, option button and check-box controls. Installing a new dll
or
ocx
onto my user's systems to make this happen would be OK.

Anybody got any bright ideas?
TIA,
josh








  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 177
Default How to create "modern" controls on a worksheet

Hi Halim,

While my application has a number of VBA forms, there is also some
functionality which is most productively implemented with controls directly
on the worksheet.

So if you're suggesting that I move my controls from the worksheet to a
form, then I'm afraid that's not going to work for me. If I'm
misunderstanding your suggestion, can you please try again?

Thanks.

josh





"Halim" wrote in message
...
Hi Josh,

I ever have a tought like yours...
but it will be more simple in coding if you use a userform that embeded
with
controls (OCX) on it.

But then I use VB6 form to make it realize... finnaly I get my XPvisual in
the Forms controls... with comctl32 V.5 in my environment of XP SP2.
then I used *.exe.manifest file to make it XP style.

Try that way... that I;ve tried but more complicated code in it.

--

Regards,

Halim


"Josh Sale" wrote:

Starting with your last point ... I could care less. However I've been
hearing this drumbeat for years and have been ignoring it thinking "there
must be more important things to worry about then these cosmetics". But
the
beat goes on and in fact intensifies. If you remember the old "Lucky"
commercials well then I'm the opposite ... I'd rather switch than fight!

As you point out, command buttons do have a picture property. But that
really doesn't do it for me. Here are two immediate problems:

First, I need to be able to dynamically set the caption of the buttons.
You
can't do that if the button face is coming from a graphic image.

Second setting the picture property doesn't really address the user's
complaints. They want "modern" controls. So for example, when you roll
the
mouse over a modern command button, it gets a "highlight". This doesn't
happen when you set the object's Picture property. OK ... perhaps there
is
a mouse_over event I can trap and load a new picture into each command
button as the mouse rolls over it (although I actually think there may be
no
such event), this is way overboard. I shouldn't have to try to replicate
all of the "modern" behaviors of these controls in my code. Its a waste
of
my time, I'll never get it 100% right and I'll have to make a career of
it
(e.g., next Vista and then whatever follows that).

Finally, not withstanding any of the above, the Picture solution isn't a
complete solution for me. As I mentioned, I need other controls like a
combo box which don't have Picture properties.

I have to believe there is someway to get the "native" controls onto a
worksheet.

Any other suggestions?

Thanks,

josh



"Jim Cone" wrote in message
...

The command button control (and others) have a picture property.
You can get free Vista pictures off the internet.
Try some of those on your controls. You can link the pictures
to the controls or simply paste the pictures into the picture property.

Are you sure it isn't the developer that cares about "modern" controls
and not the users? <g
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware



"Josh Sale" <jsale@tril dot cod
wrote in message
I have an add-in that dynamically creates various kinds of OLE controls
on
a
worksheet. I use code like the following:

ActiveSheet.OLEObjects.Add(ClassType:="Forms.Comma ndButton.1", ...
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combo Box.1", ...

I need to use OLE objects rather than say Form controls (which at least
in
the case of combo boxes look a little better) because I need the events
exposed by the OLE objects.

Anyway, all of this works fine and has been stabile for years. Buy my
users
increasingly complain about the aesthetics of these controls. Without
being
to precise, I think the above code results in Windows 3.1 controls
being
created (OK, maybe its Win95) and they just look like old clunkers.

I'm looking for a way to create contemporary WinXP (or perhaps even
Vista)
controls on my worksheets. I need command buttons, combo-boxes,
text-boxes,
list-box, option button and check-box controls. Installing a new dll
or
ocx
onto my user's systems to make this happen would be OK.

Anybody got any bright ideas?
TIA,
josh







  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 4,391
Default How to create "modern" controls on a worksheet

Basically, you need to:
- Search the web for suitable control(s), or write one yourself in a
suitable language (VB6 is relatively easy, if you have/can get it).
- Install on your machine, normally by registering the .ocx file
- On the Controls Toolbox in Excel, click the "More Controls" icon at the
bottom/right.
- Use as you would any other control, assuming it exposes the correct
interface. Whether it supports those events will depend on the writer of
that control.

You would of course have to ensure your users had said control installed on
their systems also. If you can distribute the control will depend on its
licensing terms.

As for the Win XP/Vista controls, I would doubt they are distributable and
installing on other systems would probably not be a good idea anyway.

NickHK

"Josh Sale" <jsale@tril dot cod wrote in message
...
Thanks Nick. This sounds like music to my ears! A few follow-up

questions:

- So would I create (say) such a command button using CreateObject?
GetObject? OLEObjects.Add?

- Do you know the name (file or class) of the "common" controls used by
WinXP? By Vista?

- The KB article you pointed me to indicates that these ActiveX controls
must support the IDataObject interface. Do you happen to know if WinXP's
"common" controls support this interface?

- Once I create one of these ActiveX controls, can I position it on the
worksheet the way I do my current controls (e.g., by setting its Top,

Left,
Width and Height properties)? Will the Top and Left properties take

values
from the same coordinate system as I currently use for the existing
controls?

- Once I create one of these ActiveX controls, will I be able to field
events as I currently do (e.g., Sub object_name_MouseDown(...))?

I'm sure I can figure out the answers to some of these questions once I

get
started, but if you have any pointers I'd really appreciate it.

Thanks,

josh






"NickHK" wrote in message
...
You are free to use any* ActiveX control that is installed on the user's
system and if you have an Installer routine, you can add new controls to
system. Obviously this becomes more complex than just sending a WB, but
installation should only be a one-time thing.

* Actually, there are some limitations in which Active controls you can
use;
the control must expose the certain interfaces:
http://support.microsoft.com/kb/168392
Whilst is quite old, I believe it still applies to Excel.

NickHK

"Josh Sale" <jsale@tril dot cod wrote in message
...
Starting with your last point ... I could care less. However I've been
hearing this drumbeat for years and have been ignoring it thinking

"there
must be more important things to worry about then these cosmetics".

But
the
beat goes on and in fact intensifies. If you remember the old "Lucky"
commercials well then I'm the opposite ... I'd rather switch than

fight!

As you point out, command buttons do have a picture property. But that
really doesn't do it for me. Here are two immediate problems:

First, I need to be able to dynamically set the caption of the buttons.

You
can't do that if the button face is coming from a graphic image.

Second setting the picture property doesn't really address the user's
complaints. They want "modern" controls. So for example, when you

roll
the
mouse over a modern command button, it gets a "highlight". This

doesn't
happen when you set the object's Picture property. OK ... perhaps

there
is
a mouse_over event I can trap and load a new picture into each command
button as the mouse rolls over it (although I actually think there may

be
no
such event), this is way overboard. I shouldn't have to try to

replicate
all of the "modern" behaviors of these controls in my code. Its a

waste
of
my time, I'll never get it 100% right and I'll have to make a career of
it
(e.g., next Vista and then whatever follows that).

Finally, not withstanding any of the above, the Picture solution isn't

a
complete solution for me. As I mentioned, I need other controls like a
combo box which don't have Picture properties.

I have to believe there is someway to get the "native" controls onto a
worksheet.

Any other suggestions?

Thanks,

josh



"Jim Cone" wrote in message
...

The command button control (and others) have a picture property.
You can get free Vista pictures off the internet.
Try some of those on your controls. You can link the pictures
to the controls or simply paste the pictures into the picture

property.

Are you sure it isn't the developer that cares about "modern"

controls
and not the users? <g
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware



"Josh Sale" <jsale@tril dot cod
wrote in message
I have an add-in that dynamically creates various kinds of OLE

controls
on
a
worksheet. I use code like the following:

ActiveSheet.OLEObjects.Add(ClassType:="Forms.Comma ndButton.1", ...
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combo Box.1", ...

I need to use OLE objects rather than say Form controls (which at

least
in
the case of combo boxes look a little better) because I need the

events
exposed by the OLE objects.

Anyway, all of this works fine and has been stabile for years. Buy

my
users
increasingly complain about the aesthetics of these controls.

Without
being
to precise, I think the above code results in Windows 3.1 controls
being
created (OK, maybe its Win95) and they just look like old clunkers.

I'm looking for a way to create contemporary WinXP (or perhaps even

Vista)
controls on my worksheets. I need command buttons, combo-boxes,
text-boxes,
list-box, option button and check-box controls. Installing a new dll
or
ocx
onto my user's systems to make this happen would be OK.

Anybody got any bright ideas?
TIA,
josh










  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 177
Default How to create "modern" controls on a worksheet

Hi Nick,

Thanks for your continuing help. A couple of things:

- I don't think adding the ActiveX control to the Controls Toolbox does
anything for me. I don't put Excel into design mode and manually add these
controls. Instead all of these controls are programmatically added by my
add-in. This is why I was asking about what mechanism to use.

- All of my users are using WinXP so I wouldn't have to redistribute the ocx
that contains WinXP's common controls. What my users say is that they don't
want controls that work better or worse or look better or worse than the
"native" WinXP controls (command buttons, combo boxes, etc). This is why
I've been a little fixated on just using the WinXP controls.

Again I appreciate your help on this!

josh




"NickHK" wrote in message
...
Basically, you need to:
- Search the web for suitable control(s), or write one yourself in a
suitable language (VB6 is relatively easy, if you have/can get it).
- Install on your machine, normally by registering the .ocx file
- On the Controls Toolbox in Excel, click the "More Controls" icon at the
bottom/right.
- Use as you would any other control, assuming it exposes the correct
interface. Whether it supports those events will depend on the writer of
that control.

You would of course have to ensure your users had said control installed
on
their systems also. If you can distribute the control will depend on its
licensing terms.

As for the Win XP/Vista controls, I would doubt they are distributable and
installing on other systems would probably not be a good idea anyway.

NickHK

"Josh Sale" <jsale@tril dot cod wrote in message
...
Thanks Nick. This sounds like music to my ears! A few follow-up

questions:

- So would I create (say) such a command button using CreateObject?
GetObject? OLEObjects.Add?

- Do you know the name (file or class) of the "common" controls used by
WinXP? By Vista?

- The KB article you pointed me to indicates that these ActiveX controls
must support the IDataObject interface. Do you happen to know if WinXP's
"common" controls support this interface?

- Once I create one of these ActiveX controls, can I position it on the
worksheet the way I do my current controls (e.g., by setting its Top,

Left,
Width and Height properties)? Will the Top and Left properties take

values
from the same coordinate system as I currently use for the existing
controls?

- Once I create one of these ActiveX controls, will I be able to field
events as I currently do (e.g., Sub object_name_MouseDown(...))?

I'm sure I can figure out the answers to some of these questions once I

get
started, but if you have any pointers I'd really appreciate it.

Thanks,

josh






"NickHK" wrote in message
...
You are free to use any* ActiveX control that is installed on the
user's
system and if you have an Installer routine, you can add new controls
to
system. Obviously this becomes more complex than just sending a WB, but
installation should only be a one-time thing.

* Actually, there are some limitations in which Active controls you can
use;
the control must expose the certain interfaces:
http://support.microsoft.com/kb/168392
Whilst is quite old, I believe it still applies to Excel.

NickHK

"Josh Sale" <jsale@tril dot cod wrote in message
...
Starting with your last point ... I could care less. However I've
been
hearing this drumbeat for years and have been ignoring it thinking

"there
must be more important things to worry about then these cosmetics".

But
the
beat goes on and in fact intensifies. If you remember the old "Lucky"
commercials well then I'm the opposite ... I'd rather switch than

fight!

As you point out, command buttons do have a picture property. But
that
really doesn't do it for me. Here are two immediate problems:

First, I need to be able to dynamically set the caption of the
buttons.
You
can't do that if the button face is coming from a graphic image.

Second setting the picture property doesn't really address the user's
complaints. They want "modern" controls. So for example, when you

roll
the
mouse over a modern command button, it gets a "highlight". This

doesn't
happen when you set the object's Picture property. OK ... perhaps

there
is
a mouse_over event I can trap and load a new picture into each command
button as the mouse rolls over it (although I actually think there may

be
no
such event), this is way overboard. I shouldn't have to try to

replicate
all of the "modern" behaviors of these controls in my code. Its a

waste
of
my time, I'll never get it 100% right and I'll have to make a career
of
it
(e.g., next Vista and then whatever follows that).

Finally, not withstanding any of the above, the Picture solution isn't

a
complete solution for me. As I mentioned, I need other controls like
a
combo box which don't have Picture properties.

I have to believe there is someway to get the "native" controls onto a
worksheet.

Any other suggestions?

Thanks,

josh



"Jim Cone" wrote in message
...

The command button control (and others) have a picture property.
You can get free Vista pictures off the internet.
Try some of those on your controls. You can link the pictures
to the controls or simply paste the pictures into the picture

property.

Are you sure it isn't the developer that cares about "modern"

controls
and not the users? <g
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware



"Josh Sale" <jsale@tril dot cod
wrote in message
I have an add-in that dynamically creates various kinds of OLE

controls
on
a
worksheet. I use code like the following:

ActiveSheet.OLEObjects.Add(ClassType:="Forms.Comma ndButton.1", ...
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combo Box.1", ...

I need to use OLE objects rather than say Form controls (which at

least
in
the case of combo boxes look a little better) because I need the

events
exposed by the OLE objects.

Anyway, all of this works fine and has been stabile for years. Buy

my
users
increasingly complain about the aesthetics of these controls.

Without
being
to precise, I think the above code results in Windows 3.1 controls
being
created (OK, maybe its Win95) and they just look like old clunkers.

I'm looking for a way to create contemporary WinXP (or perhaps even
Vista)
controls on my worksheets. I need command buttons, combo-boxes,
text-boxes,
list-box, option button and check-box controls. Installing a new
dll
or
ocx
onto my user's systems to make this happen would be OK.

Anybody got any bright ideas?
TIA,
josh












  #10   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 177
Default How to create "modern" controls on a worksheet

Nick,

I followed your suggestion and searched around a found an ActiveX control
that looks pretty promising. Its name is myCommand Button. I downloaded a
trial version and tweaked my code to create a myCommandButton instead of my
old Forms.CommandButton and other than dealing with some properties, of the
old command button that aren't present in the new command button, which my
code set, it just kinda, sorta works.

So this just might work out OK.

Thanks for the suggestions!

josh




"Josh Sale" <jsale@tril dot cod wrote in message
...
Hi Nick,

Thanks for your continuing help. A couple of things:

- I don't think adding the ActiveX control to the Controls Toolbox does
anything for me. I don't put Excel into design mode and manually add
these controls. Instead all of these controls are programmatically added
by my add-in. This is why I was asking about what mechanism to use.

- All of my users are using WinXP so I wouldn't have to redistribute the
ocx that contains WinXP's common controls. What my users say is that they
don't want controls that work better or worse or look better or worse than
the "native" WinXP controls (command buttons, combo boxes, etc). This is
why I've been a little fixated on just using the WinXP controls.

Again I appreciate your help on this!

josh




"NickHK" wrote in message
...
Basically, you need to:
- Search the web for suitable control(s), or write one yourself in a
suitable language (VB6 is relatively easy, if you have/can get it).
- Install on your machine, normally by registering the .ocx file
- On the Controls Toolbox in Excel, click the "More Controls" icon at the
bottom/right.
- Use as you would any other control, assuming it exposes the correct
interface. Whether it supports those events will depend on the writer of
that control.

You would of course have to ensure your users had said control installed
on
their systems also. If you can distribute the control will depend on its
licensing terms.

As for the Win XP/Vista controls, I would doubt they are distributable
and
installing on other systems would probably not be a good idea anyway.

NickHK

"Josh Sale" <jsale@tril dot cod wrote in message
...
Thanks Nick. This sounds like music to my ears! A few follow-up

questions:

- So would I create (say) such a command button using CreateObject?
GetObject? OLEObjects.Add?

- Do you know the name (file or class) of the "common" controls used by
WinXP? By Vista?

- The KB article you pointed me to indicates that these ActiveX controls
must support the IDataObject interface. Do you happen to know if
WinXP's
"common" controls support this interface?

- Once I create one of these ActiveX controls, can I position it on the
worksheet the way I do my current controls (e.g., by setting its Top,

Left,
Width and Height properties)? Will the Top and Left properties take

values
from the same coordinate system as I currently use for the existing
controls?

- Once I create one of these ActiveX controls, will I be able to field
events as I currently do (e.g., Sub object_name_MouseDown(...))?

I'm sure I can figure out the answers to some of these questions once I

get
started, but if you have any pointers I'd really appreciate it.

Thanks,

josh






"NickHK" wrote in message
...
You are free to use any* ActiveX control that is installed on the
user's
system and if you have an Installer routine, you can add new controls
to
system. Obviously this becomes more complex than just sending a WB,
but
installation should only be a one-time thing.

* Actually, there are some limitations in which Active controls you
can
use;
the control must expose the certain interfaces:
http://support.microsoft.com/kb/168392
Whilst is quite old, I believe it still applies to Excel.

NickHK

"Josh Sale" <jsale@tril dot cod wrote in message
...
Starting with your last point ... I could care less. However I've
been
hearing this drumbeat for years and have been ignoring it thinking

"there
must be more important things to worry about then these cosmetics".

But
the
beat goes on and in fact intensifies. If you remember the old
"Lucky"
commercials well then I'm the opposite ... I'd rather switch than

fight!

As you point out, command buttons do have a picture property. But
that
really doesn't do it for me. Here are two immediate problems:

First, I need to be able to dynamically set the caption of the
buttons.
You
can't do that if the button face is coming from a graphic image.

Second setting the picture property doesn't really address the user's
complaints. They want "modern" controls. So for example, when you

roll
the
mouse over a modern command button, it gets a "highlight". This

doesn't
happen when you set the object's Picture property. OK ... perhaps

there
is
a mouse_over event I can trap and load a new picture into each
command
button as the mouse rolls over it (although I actually think there
may

be
no
such event), this is way overboard. I shouldn't have to try to

replicate
all of the "modern" behaviors of these controls in my code. Its a

waste
of
my time, I'll never get it 100% right and I'll have to make a career
of
it
(e.g., next Vista and then whatever follows that).

Finally, not withstanding any of the above, the Picture solution
isn't

a
complete solution for me. As I mentioned, I need other controls like
a
combo box which don't have Picture properties.

I have to believe there is someway to get the "native" controls onto
a
worksheet.

Any other suggestions?

Thanks,

josh



"Jim Cone" wrote in message
...

The command button control (and others) have a picture property.
You can get free Vista pictures off the internet.
Try some of those on your controls. You can link the pictures
to the controls or simply paste the pictures into the picture

property.

Are you sure it isn't the developer that cares about "modern"

controls
and not the users? <g
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware



"Josh Sale" <jsale@tril dot cod
wrote in message
I have an add-in that dynamically creates various kinds of OLE

controls
on
a
worksheet. I use code like the following:

ActiveSheet.OLEObjects.Add(ClassType:="Forms.Comma ndButton.1",
...
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combo Box.1", ...

I need to use OLE objects rather than say Form controls (which at

least
in
the case of combo boxes look a little better) because I need the

events
exposed by the OLE objects.

Anyway, all of this works fine and has been stabile for years. Buy

my
users
increasingly complain about the aesthetics of these controls.

Without
being
to precise, I think the above code results in Windows 3.1 controls
being
created (OK, maybe its Win95) and they just look like old clunkers.

I'm looking for a way to create contemporary WinXP (or perhaps even
Vista)
controls on my worksheets. I need command buttons, combo-boxes,
text-boxes,
list-box, option button and check-box controls. Installing a new
dll
or
ocx
onto my user's systems to make this happen would be OK.

Anybody got any bright ideas?
TIA,
josh
















  #11   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 4,391
Default How to create "modern" controls on a worksheet

- You add them the same as any other ActiveX control.

- Can't say what your users consider better or worse.

NickHK

"Josh Sale" <jsale@tril dot cod wrote in message
...
Hi Nick,

Thanks for your continuing help. A couple of things:

- I don't think adding the ActiveX control to the Controls Toolbox does
anything for me. I don't put Excel into design mode and manually add

these
controls. Instead all of these controls are programmatically added by my
add-in. This is why I was asking about what mechanism to use.

- All of my users are using WinXP so I wouldn't have to redistribute the

ocx
that contains WinXP's common controls. What my users say is that they

don't
want controls that work better or worse or look better or worse than the
"native" WinXP controls (command buttons, combo boxes, etc). This is why
I've been a little fixated on just using the WinXP controls.

Again I appreciate your help on this!

josh




"NickHK" wrote in message
...
Basically, you need to:
- Search the web for suitable control(s), or write one yourself in a
suitable language (VB6 is relatively easy, if you have/can get it).
- Install on your machine, normally by registering the .ocx file
- On the Controls Toolbox in Excel, click the "More Controls" icon at

the
bottom/right.
- Use as you would any other control, assuming it exposes the correct
interface. Whether it supports those events will depend on the writer of
that control.

You would of course have to ensure your users had said control installed
on
their systems also. If you can distribute the control will depend on its
licensing terms.

As for the Win XP/Vista controls, I would doubt they are distributable

and
installing on other systems would probably not be a good idea anyway.

NickHK

"Josh Sale" <jsale@tril dot cod wrote in message
...
Thanks Nick. This sounds like music to my ears! A few follow-up

questions:

- So would I create (say) such a command button using CreateObject?
GetObject? OLEObjects.Add?

- Do you know the name (file or class) of the "common" controls used by
WinXP? By Vista?

- The KB article you pointed me to indicates that these ActiveX

controls
must support the IDataObject interface. Do you happen to know if

WinXP's
"common" controls support this interface?

- Once I create one of these ActiveX controls, can I position it on the
worksheet the way I do my current controls (e.g., by setting its Top,

Left,
Width and Height properties)? Will the Top and Left properties take

values
from the same coordinate system as I currently use for the existing
controls?

- Once I create one of these ActiveX controls, will I be able to field
events as I currently do (e.g., Sub object_name_MouseDown(...))?

I'm sure I can figure out the answers to some of these questions once I

get
started, but if you have any pointers I'd really appreciate it.

Thanks,

josh






"NickHK" wrote in message
...
You are free to use any* ActiveX control that is installed on the
user's
system and if you have an Installer routine, you can add new controls
to
system. Obviously this becomes more complex than just sending a WB,

but
installation should only be a one-time thing.

* Actually, there are some limitations in which Active controls you

can
use;
the control must expose the certain interfaces:
http://support.microsoft.com/kb/168392
Whilst is quite old, I believe it still applies to Excel.

NickHK

"Josh Sale" <jsale@tril dot cod wrote in message
...
Starting with your last point ... I could care less. However I've
been
hearing this drumbeat for years and have been ignoring it thinking

"there
must be more important things to worry about then these cosmetics".

But
the
beat goes on and in fact intensifies. If you remember the old

"Lucky"
commercials well then I'm the opposite ... I'd rather switch than

fight!

As you point out, command buttons do have a picture property. But
that
really doesn't do it for me. Here are two immediate problems:

First, I need to be able to dynamically set the caption of the
buttons.
You
can't do that if the button face is coming from a graphic image.

Second setting the picture property doesn't really address the

user's
complaints. They want "modern" controls. So for example, when you

roll
the
mouse over a modern command button, it gets a "highlight". This

doesn't
happen when you set the object's Picture property. OK ... perhaps

there
is
a mouse_over event I can trap and load a new picture into each

command
button as the mouse rolls over it (although I actually think there

may
be
no
such event), this is way overboard. I shouldn't have to try to

replicate
all of the "modern" behaviors of these controls in my code. Its a

waste
of
my time, I'll never get it 100% right and I'll have to make a career
of
it
(e.g., next Vista and then whatever follows that).

Finally, not withstanding any of the above, the Picture solution

isn't
a
complete solution for me. As I mentioned, I need other controls

like
a
combo box which don't have Picture properties.

I have to believe there is someway to get the "native" controls onto

a
worksheet.

Any other suggestions?

Thanks,

josh



"Jim Cone" wrote in message
...

The command button control (and others) have a picture property.
You can get free Vista pictures off the internet.
Try some of those on your controls. You can link the pictures
to the controls or simply paste the pictures into the picture

property.

Are you sure it isn't the developer that cares about "modern"

controls
and not the users? <g
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware



"Josh Sale" <jsale@tril dot cod
wrote in message
I have an add-in that dynamically creates various kinds of OLE

controls
on
a
worksheet. I use code like the following:

ActiveSheet.OLEObjects.Add(ClassType:="Forms.Comma ndButton.1",

....
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combo Box.1", ...

I need to use OLE objects rather than say Form controls (which at

least
in
the case of combo boxes look a little better) because I need the

events
exposed by the OLE objects.

Anyway, all of this works fine and has been stabile for years.

Buy
my
users
increasingly complain about the aesthetics of these controls.

Without
being
to precise, I think the above code results in Windows 3.1 controls
being
created (OK, maybe its Win95) and they just look like old

clunkers.

I'm looking for a way to create contemporary WinXP (or perhaps

even
Vista)
controls on my worksheets. I need command buttons, combo-boxes,
text-boxes,
list-box, option button and check-box controls. Installing a new
dll
or
ocx
onto my user's systems to make this happen would be OK.

Anybody got any bright ideas?
TIA,
josh














  #12   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 112
Default How to create "modern" controls on a worksheet

Hi Josh,
did you solve your problems with myCommandButton?
I've tried several Active X controls but they seldom work within Excel,
they are usually aimed for VB or other programming languages.
I tried myCommandbutton too but went "scared" by the consequence of the
message:
"You are about to initialize an Active X control that may not be safe......."
I trusted the control itself, but to get rid of the message you have to set
the
entire Office environment to accept UFI controls (Unsafe for Initialization).
I understand it as such that then is your system wide open to any ActiveX
control
that may sneak into your system!
It's a pity they don't do anything to the forms controls in Excel. I cannot
understand why anybody want an application to look like something from
Windows 3.1.
Nothing else does nowadays!
I've solved it partly by using a transparent button and a button sized
underlying image
with fading colours but they require a lot of work and are difficult to
maintain.

Best regards
Mats

"Josh Sale" wrote:

Nick,

I followed your suggestion and searched around a found an ActiveX control
that looks pretty promising. Its name is myCommand Button. I downloaded a
trial version and tweaked my code to create a myCommandButton instead of my
old Forms.CommandButton and other than dealing with some properties, of the
old command button that aren't present in the new command button, which my
code set, it just kinda, sorta works.

So this just might work out OK.

Thanks for the suggestions!

josh




"Josh Sale" <jsale@tril dot cod wrote in message
...
Hi Nick,

Thanks for your continuing help. A couple of things:

- I don't think adding the ActiveX control to the Controls Toolbox does
anything for me. I don't put Excel into design mode and manually add
these controls. Instead all of these controls are programmatically added
by my add-in. This is why I was asking about what mechanism to use.

- All of my users are using WinXP so I wouldn't have to redistribute the
ocx that contains WinXP's common controls. What my users say is that they
don't want controls that work better or worse or look better or worse than
the "native" WinXP controls (command buttons, combo boxes, etc). This is
why I've been a little fixated on just using the WinXP controls.

Again I appreciate your help on this!

josh




"NickHK" wrote in message
...
Basically, you need to:
- Search the web for suitable control(s), or write one yourself in a
suitable language (VB6 is relatively easy, if you have/can get it).
- Install on your machine, normally by registering the .ocx file
- On the Controls Toolbox in Excel, click the "More Controls" icon at the
bottom/right.
- Use as you would any other control, assuming it exposes the correct
interface. Whether it supports those events will depend on the writer of
that control.

You would of course have to ensure your users had said control installed
on
their systems also. If you can distribute the control will depend on its
licensing terms.

As for the Win XP/Vista controls, I would doubt they are distributable
and
installing on other systems would probably not be a good idea anyway.

NickHK

"Josh Sale" <jsale@tril dot cod wrote in message
...
Thanks Nick. This sounds like music to my ears! A few follow-up
questions:

- So would I create (say) such a command button using CreateObject?
GetObject? OLEObjects.Add?

- Do you know the name (file or class) of the "common" controls used by
WinXP? By Vista?

- The KB article you pointed me to indicates that these ActiveX controls
must support the IDataObject interface. Do you happen to know if
WinXP's
"common" controls support this interface?

- Once I create one of these ActiveX controls, can I position it on the
worksheet the way I do my current controls (e.g., by setting its Top,
Left,
Width and Height properties)? Will the Top and Left properties take
values
from the same coordinate system as I currently use for the existing
controls?

- Once I create one of these ActiveX controls, will I be able to field
events as I currently do (e.g., Sub object_name_MouseDown(...))?

I'm sure I can figure out the answers to some of these questions once I
get
started, but if you have any pointers I'd really appreciate it.

Thanks,

josh






"NickHK" wrote in message
...
You are free to use any* ActiveX control that is installed on the
user's
system and if you have an Installer routine, you can add new controls
to
system. Obviously this becomes more complex than just sending a WB,
but
installation should only be a one-time thing.

* Actually, there are some limitations in which Active controls you
can
use;
the control must expose the certain interfaces:
http://support.microsoft.com/kb/168392
Whilst is quite old, I believe it still applies to Excel.

NickHK

"Josh Sale" <jsale@tril dot cod wrote in message
...
Starting with your last point ... I could care less. However I've
been
hearing this drumbeat for years and have been ignoring it thinking
"there
must be more important things to worry about then these cosmetics".
But
the
beat goes on and in fact intensifies. If you remember the old
"Lucky"
commercials well then I'm the opposite ... I'd rather switch than
fight!

As you point out, command buttons do have a picture property. But
that
really doesn't do it for me. Here are two immediate problems:

First, I need to be able to dynamically set the caption of the
buttons.
You
can't do that if the button face is coming from a graphic image.

Second setting the picture property doesn't really address the user's
complaints. They want "modern" controls. So for example, when you
roll
the
mouse over a modern command button, it gets a "highlight". This
doesn't
happen when you set the object's Picture property. OK ... perhaps
there
is
a mouse_over event I can trap and load a new picture into each
command
button as the mouse rolls over it (although I actually think there
may
be
no
such event), this is way overboard. I shouldn't have to try to
replicate
all of the "modern" behaviors of these controls in my code. Its a
waste
of
my time, I'll never get it 100% right and I'll have to make a career
of
it
(e.g., next Vista and then whatever follows that).

Finally, not withstanding any of the above, the Picture solution
isn't
a
complete solution for me. As I mentioned, I need other controls like
a
combo box which don't have Picture properties.

I have to believe there is someway to get the "native" controls onto
a
worksheet.

Any other suggestions?

Thanks,

josh



"Jim Cone" wrote in message
...

The command button control (and others) have a picture property.
You can get free Vista pictures off the internet.
Try some of those on your controls. You can link the pictures
to the controls or simply paste the pictures into the picture
property.

Are you sure it isn't the developer that cares about "modern"
controls
and not the users? <g
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware



"Josh Sale" <jsale@tril dot cod
wrote in message
I have an add-in that dynamically creates various kinds of OLE
controls
on
a
worksheet. I use code like the following:

ActiveSheet.OLEObjects.Add(ClassType:="Forms.Comma ndButton.1",
...
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combo Box.1", ...

I need to use OLE objects rather than say Form controls (which at
least
in
the case of combo boxes look a little better) because I need the
events
exposed by the OLE objects.

Anyway, all of this works fine and has been stabile for years. Buy
my
users
increasingly complain about the aesthetics of these controls.
Without
being
to precise, I think the above code results in Windows 3.1 controls
being
created (OK, maybe its Win95) and they just look like old clunkers.

I'm looking for a way to create contemporary WinXP (or perhaps even
Vista)
controls on my worksheets. I need command buttons, combo-boxes,
text-boxes,
list-box, option button and check-box controls. Installing a new
dll
or
ocx
onto my user's systems to make this happen would be OK.

Anybody got any bright ideas?
TIA,
josh















  #13   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 177
Default How to create "modern" controls on a worksheet

Hi Mats,

Its always kind of fun when an old dormant thread wakes up.

Obviously I understand and agree with your frustrations. I did some work
exploring all of this around the time of the original posting and felt like
I could make things work but then got dragged away to other assignments and
haven't gotten back to this. As I recall, I felt pretty good about
MyCommandButton (http://www.namtuk.com/mycommandbutton.aspx). The biggest
problem I thought I was going to have was changing my code to:

- instantiate the MyCommandButtons instead of the traditional MS command
buttons (no big deal), and

- avoid setting and testing various public properties (e.g.,
TakeFocusOnClick) which are present in the MS command buttons but absent in
the MyCommandButtons.

It all seemed pretty doable.

The other approach that has since surfaced, but which I haven't had time to
explore much, is to add .Net command buttons (maybe that's not exactly the
right term) to the worksheet using VB.Net and VSTO. One obvious implication
of this approach is that it doesn't support older versions of Excel, but we
may be getting to the point where we only support Excel 2003 and later.

If you make progress on this, please update the thread.

Good luck!

josh





"Mats Samson" wrote in message
...
Hi Josh,
did you solve your problems with myCommandButton?
I've tried several Active X controls but they seldom work within Excel,
they are usually aimed for VB or other programming languages.
I tried myCommandbutton too but went "scared" by the consequence of the
message:
"You are about to initialize an Active X control that may not be
safe......."
I trusted the control itself, but to get rid of the message you have to
set
the
entire Office environment to accept UFI controls (Unsafe for
Initialization).
I understand it as such that then is your system wide open to any ActiveX
control
that may sneak into your system!
It's a pity they don't do anything to the forms controls in Excel. I
cannot
understand why anybody want an application to look like something from
Windows 3.1.
Nothing else does nowadays!
I've solved it partly by using a transparent button and a button sized
underlying image
with fading colours but they require a lot of work and are difficult to
maintain.

Best regards
Mats

"Josh Sale" wrote:

Nick,

I followed your suggestion and searched around a found an ActiveX control
that looks pretty promising. Its name is myCommand Button. I downloaded
a
trial version and tweaked my code to create a myCommandButton instead of
my
old Forms.CommandButton and other than dealing with some properties, of
the
old command button that aren't present in the new command button, which
my
code set, it just kinda, sorta works.

So this just might work out OK.

Thanks for the suggestions!

josh




"Josh Sale" <jsale@tril dot cod wrote in message
...
Hi Nick,

Thanks for your continuing help. A couple of things:

- I don't think adding the ActiveX control to the Controls Toolbox does
anything for me. I don't put Excel into design mode and manually add
these controls. Instead all of these controls are programmatically
added
by my add-in. This is why I was asking about what mechanism to use.

- All of my users are using WinXP so I wouldn't have to redistribute
the
ocx that contains WinXP's common controls. What my users say is that
they
don't want controls that work better or worse or look better or worse
than
the "native" WinXP controls (command buttons, combo boxes, etc). This
is
why I've been a little fixated on just using the WinXP controls.

Again I appreciate your help on this!

josh




"NickHK" wrote in message
...
Basically, you need to:
- Search the web for suitable control(s), or write one yourself in a
suitable language (VB6 is relatively easy, if you have/can get it).
- Install on your machine, normally by registering the .ocx file
- On the Controls Toolbox in Excel, click the "More Controls" icon at
the
bottom/right.
- Use as you would any other control, assuming it exposes the correct
interface. Whether it supports those events will depend on the writer
of
that control.

You would of course have to ensure your users had said control
installed
on
their systems also. If you can distribute the control will depend on
its
licensing terms.

As for the Win XP/Vista controls, I would doubt they are distributable
and
installing on other systems would probably not be a good idea anyway.

NickHK

"Josh Sale" <jsale@tril dot cod wrote in message
...
Thanks Nick. This sounds like music to my ears! A few follow-up
questions:

- So would I create (say) such a command button using CreateObject?
GetObject? OLEObjects.Add?

- Do you know the name (file or class) of the "common" controls used
by
WinXP? By Vista?

- The KB article you pointed me to indicates that these ActiveX
controls
must support the IDataObject interface. Do you happen to know if
WinXP's
"common" controls support this interface?

- Once I create one of these ActiveX controls, can I position it on
the
worksheet the way I do my current controls (e.g., by setting its Top,
Left,
Width and Height properties)? Will the Top and Left properties take
values
from the same coordinate system as I currently use for the existing
controls?

- Once I create one of these ActiveX controls, will I be able to
field
events as I currently do (e.g., Sub object_name_MouseDown(...))?

I'm sure I can figure out the answers to some of these questions once
I
get
started, but if you have any pointers I'd really appreciate it.

Thanks,

josh






"NickHK" wrote in message
...
You are free to use any* ActiveX control that is installed on the
user's
system and if you have an Installer routine, you can add new
controls
to
system. Obviously this becomes more complex than just sending a WB,
but
installation should only be a one-time thing.

* Actually, there are some limitations in which Active controls you
can
use;
the control must expose the certain interfaces:
http://support.microsoft.com/kb/168392
Whilst is quite old, I believe it still applies to Excel.

NickHK

"Josh Sale" <jsale@tril dot cod wrote in message
...
Starting with your last point ... I could care less. However I've
been
hearing this drumbeat for years and have been ignoring it thinking
"there
must be more important things to worry about then these
cosmetics".
But
the
beat goes on and in fact intensifies. If you remember the old
"Lucky"
commercials well then I'm the opposite ... I'd rather switch than
fight!

As you point out, command buttons do have a picture property. But
that
really doesn't do it for me. Here are two immediate problems:

First, I need to be able to dynamically set the caption of the
buttons.
You
can't do that if the button face is coming from a graphic image.

Second setting the picture property doesn't really address the
user's
complaints. They want "modern" controls. So for example, when
you
roll
the
mouse over a modern command button, it gets a "highlight". This
doesn't
happen when you set the object's Picture property. OK ... perhaps
there
is
a mouse_over event I can trap and load a new picture into each
command
button as the mouse rolls over it (although I actually think there
may
be
no
such event), this is way overboard. I shouldn't have to try to
replicate
all of the "modern" behaviors of these controls in my code. Its a
waste
of
my time, I'll never get it 100% right and I'll have to make a
career
of
it
(e.g., next Vista and then whatever follows that).

Finally, not withstanding any of the above, the Picture solution
isn't
a
complete solution for me. As I mentioned, I need other controls
like
a
combo box which don't have Picture properties.

I have to believe there is someway to get the "native" controls
onto
a
worksheet.

Any other suggestions?

Thanks,

josh



"Jim Cone" wrote in message
...

The command button control (and others) have a picture property.
You can get free Vista pictures off the internet.
Try some of those on your controls. You can link the pictures
to the controls or simply paste the pictures into the picture
property.

Are you sure it isn't the developer that cares about "modern"
controls
and not the users? <g
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware



"Josh Sale" <jsale@tril dot cod
wrote in message
I have an add-in that dynamically creates various kinds of OLE
controls
on
a
worksheet. I use code like the following:

ActiveSheet.OLEObjects.Add(ClassType:="Forms.Comma ndButton.1",
...
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combo Box.1", ...

I need to use OLE objects rather than say Form controls (which
at
least
in
the case of combo boxes look a little better) because I need the
events
exposed by the OLE objects.

Anyway, all of this works fine and has been stabile for years.
Buy
my
users
increasingly complain about the aesthetics of these controls.
Without
being
to precise, I think the above code results in Windows 3.1
controls
being
created (OK, maybe its Win95) and they just look like old
clunkers.

I'm looking for a way to create contemporary WinXP (or perhaps
even
Vista)
controls on my worksheets. I need command buttons, combo-boxes,
text-boxes,
list-box, option button and check-box controls. Installing a
new
dll
or
ocx
onto my user's systems to make this happen would be OK.

Anybody got any bright ideas?
TIA,
josh

















Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Macro to Create New Worksheet and Reference Cell in Old Worksheet As Tab Name - "Object Required" Error [email protected] Excel Discussion (Misc queries) 4 September 25th 06 01:35 PM
create links to check boxes marked "good" fair"and "bad" pjb Excel Worksheet Functions 3 April 20th 06 02:17 AM
CommandBars("Worksheet Menu Bar").Controls("Tools").Enabled = Fals Arturo Excel Programming 3 May 26th 05 05:44 PM
Activating Worksheet Controls - "Excel VBA Problem" vinayd Excel Programming 5 June 23rd 04 09:43 AM
Can ActiveX controls be "disabled" and "enabled"? William DeLeo Excel Programming 1 May 7th 04 09:10 PM


All times are GMT +1. The time now is 12:20 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"