View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.misc
JLatham JLatham is offline
external usenet poster
 
Posts: 3,365
Default Form buttons vs. ActiveX Buttons

I think you've described their similarities/differences/capabilities pretty
well, and Jim Rech and challa prabhu have added some detail to that.

I'm like Jim Rech - all things being equal, I'll use Forms controls even on
a worksheet in favor of ActiveX buttons. Mostly for their lighter 'weight' -
less system overhead used to use them. But there are times when they aren't
suitable or don't have the flexibility that comes with the ActiveX controls,
in which case I use them when required.

Think of them as similar tools that can often both be used to achieve a
goal, but sometimes one is a better fit than another. Kind of like a 9/16"
open end wrench and a 9/16" box end wrench - in most cases, either will work
to loosen/tighten a 9/16" nut, but in a tight space, the open-end may be the
better choice, or even the only choice. (and then you discover rachets! - no,
no hidden reference to some other really flexible controls, just an
observation).

"GeorgeJ" wrote:

I am working on an XL 2007 project requiring command buttons on a form. When
I go into the developer tab and activate the design mode and then select
insert, I am presented with 2 options for a button - a "form" button" or an
"Active X" button. I am trying to determine the advantanges and
disadvantages of each type vs. the other. So far this is what I have come up
with...

1) Both types are flexible in appearance, e. g. the button size, location,
shape, text, text format, size and color, background color are all
changeable.

2) the only way to change the name of a form button is with VBA code, e. g.


Sub ChangeButtonName()

activesheet.Shapes("Button1").Name = "Delete Departments Instructions"
End Sub

OTOH, the name of an ActiveX button can be changed by entering the
Designer mode and right clicking on the button and then selecting properties
and changing the name property. The name of a form button may have spaces in
it whereas the name of an ActiveX button may not


3) The code executed when an ActiveX button is pressed *must* be on the
code sheet for the worksheet on which the button is located, and the routine
must have a name corresponding to the button, e. g.

Private Sub CommandButton1_Click()
MsgBox "Hello from CommandButton1"
End Sub

OTOH a form button can be given the name of the routine to execute when the
button is pressed, and this routine can be located in any VBA module. What's
more, the routine can even be declared private!

Am I correct in what I have stated about the 2 kinds of buttons? Which kind
is recommended?

P.S. I have been speaking of command buttons, but as for labels, the
"Active X" kind seems better than the form kind because I can change the text
size and color of Active X labels but can't seem to do that for form labels.
It is possble to change text size and font and color on a form label ?


Thanks in advance


--
-regards