Adding AUTOSUM to Cell menu in Excel 2007

W

WhytheQ

In 2003 I could do the following:

Application.CommandBars("Cell").Controls.Add
msoControlSplitButtonPopup, 226

........and an Autosum control would be created in the Cell menu.

(I found 226 by recording a macro of changing a menu)

In 2007 the above line doesn't seem to work. Although it doesn't throw
an error either! ...

Any help greatly appreciated

Regards
JasonQ
 
J

Jim Rech

Very interesting. It appears that what we see after right-clicking a cell
is not the "cell" commandbar. At least it is not the "cell" commandbar we
can modified with code.

After running your code run this:

commandbars("cell").ShowPopup

You should see AutoSum at the bottom. But notice that this commandbar has
black font, not blue. And that it doesn't have the floatie thing on top.

--
Jim
| In 2003 I could do the following:
|
| Application.CommandBars("Cell").Controls.Add
| msoControlSplitButtonPopup, 226
|
| .......and an Autosum control would be created in the Cell menu.
|
| (I found 226 by recording a macro of changing a menu)
|
| In 2007 the above line doesn't seem to work. Although it doesn't throw
| an error either! ...
|
| Any help greatly appreciated
|
| Regards
| JasonQ
 
I

ilia

Yes, however I'm running this code from J-Walk's Power Programming:

Sub AddToShortCut()
' Adds a menu item to the Cell shortcut menu
Dim Bar As CommandBar
Dim NewControl As CommandBarButton
DeleteFromShortcut
Set Bar = CommandBars("Cell")
Set NewControl = Bar.Controls.Add _
(Type:=msoControlButton, ID:=1, _
temporary:=True)
With NewControl
.Caption = "Toggle &Word Wrap"
.OnAction = "ToggleWordWrap"
.Picture = Application.CommandBars.GetImageMso("WrapText", 16,
16)
.Style = msoButtonIconAndCaption
End With
End Sub

And it works. Also, I'm trying the following code:

Public Sub commandBarsTest()
Dim cbar As Office.CommandBar
Dim ctrl As Office.CommandBarControl

Set cbar = CommandBars("Cell")

For Each ctrl In cbar.Controls
Debug.Print ctrl.ID, ctrl.Caption, _
ctrl.Visible, ctrl.Enabled
Next ctrl
End Sub

Both the "Toggle Word Wrap" and AutoSum are listed (after running OP's
code to include it), but when using the popup in cell only the Toggle
Word Wrap is there - not the AutoSum.

It might have something to do with Control's ID property? This code
works, meaning I see "Test" in the in-cell shortcut menu:

Public Sub testControls()
Dim cbar As Office.CommandBar
Dim ctrl As Office.CommandBarControl

Set cbar = CommandBars("Cell")

Set ctrl = cbar.Controls.Add(ID:=1)

ctrl.Visible = True
ctrl.Enabled = True
ctrl.Caption = "Test"
End Sub
 
J

Jim Rech

It might have something to do with Control's ID property?

I'd guess it's the Type property. The autosum is of type
msoControlSplitButtonPopup and that is not listed among the types the
commandbar controls Add method supports per Help. Nevertheless Excel 2003
did support it and Excel 2007 does only on the 'shadow' cell menu. Go
figure.

Thanks for the additional information.

--
Jim
| Yes, however I'm running this code from J-Walk's Power Programming:
|
| Sub AddToShortCut()
| ' Adds a menu item to the Cell shortcut menu
| Dim Bar As CommandBar
| Dim NewControl As CommandBarButton
| DeleteFromShortcut
| Set Bar = CommandBars("Cell")
| Set NewControl = Bar.Controls.Add _
| (Type:=msoControlButton, ID:=1, _
| temporary:=True)
| With NewControl
| .Caption = "Toggle &Word Wrap"
| .OnAction = "ToggleWordWrap"
| .Picture = Application.CommandBars.GetImageMso("WrapText", 16,
| 16)
| .Style = msoButtonIconAndCaption
| End With
| End Sub
|
| And it works. Also, I'm trying the following code:
|
| Public Sub commandBarsTest()
| Dim cbar As Office.CommandBar
| Dim ctrl As Office.CommandBarControl
|
| Set cbar = CommandBars("Cell")
|
| For Each ctrl In cbar.Controls
| Debug.Print ctrl.ID, ctrl.Caption, _
| ctrl.Visible, ctrl.Enabled
| Next ctrl
| End Sub
|
| Both the "Toggle Word Wrap" and AutoSum are listed (after running OP's
| code to include it), but when using the popup in cell only the Toggle
| Word Wrap is there - not the AutoSum.
|
| It might have something to do with Control's ID property? This code
| works, meaning I see "Test" in the in-cell shortcut menu:
|
| Public Sub testControls()
| Dim cbar As Office.CommandBar
| Dim ctrl As Office.CommandBarControl
|
| Set cbar = CommandBars("Cell")
|
| Set ctrl = cbar.Controls.Add(ID:=1)
|
| ctrl.Visible = True
| ctrl.Enabled = True
| ctrl.Caption = "Test"
| End Sub
|
| > Very interesting. It appears that what we see after right-clicking a
cell
| > is not the "cell" commandbar. At least it is not the "cell" commandbar
we
| > can modified with code.
| >
| > After running your code run this:
| >
| > commandbars("cell").ShowPopup
| >
| > You should see AutoSum at the bottom. But notice that this commandbar
has
| > black font, not blue. And that it doesn't have the floatie thing on
top.
| >
| > --
| >
| >
| > | In 2003 I could do the following:
| > |
| > | Application.CommandBars("Cell").Controls.Add
| > | msoControlSplitButtonPopup, 226
| > |
| > | .......and an Autosum control would be created in the Cell menu.
| > |
| > | (I found 226 by recording a macro of changing a menu)
| > |
| > | In 2007 the above line doesn't seem to work. Although it doesn't throw
| > | an error either! ...
| > |
| > | Any help greatly appreciated
| > |
| > | Regards
| > | JasonQ
|
 
W

WhytheQ

I'd guess it's the Type property.  The autosum is of type
msoControlSplitButtonPopup and that is not listed among the types the
commandbar controls Add method supports per Help.  Nevertheless Excel 2003
did support it and Excel 2007 does only on the 'shadow' cell menu.  Go
figure.

Thanks for the additional information.

--

| Yes, however I'm running this code from J-Walk's Power Programming:
|
| Sub AddToShortCut()
| '   Adds a menu item to the Cell shortcut menu
|    Dim Bar As CommandBar
|    Dim NewControl As CommandBarButton
|    DeleteFromShortcut
|    Set Bar = CommandBars("Cell")
|    Set NewControl = Bar.Controls.Add _
|        (Type:=msoControlButton, ID:=1, _
|         temporary:=True)
|    With NewControl
|        .Caption = "Toggle &Word Wrap"
|        .OnAction = "ToggleWordWrap"
|        .Picture = Application.CommandBars.GetImageMso("WrapText", 16,
| 16)
|        .Style = msoButtonIconAndCaption
|    End With
| End Sub
|
| And it works.  Also, I'm trying the following code:
|
| Public Sub commandBarsTest()
|  Dim cbar As Office.CommandBar
|  Dim ctrl As Office.CommandBarControl
|
|  Set cbar = CommandBars("Cell")
|
|  For Each ctrl In cbar.Controls
|    Debug.Print ctrl.ID, ctrl.Caption, _
|               ctrl.Visible, ctrl.Enabled
|  Next ctrl
| End Sub
|
| Both the "Toggle Word Wrap" and AutoSum are listed (after running OP's
| code to include it), but when using the popup in cell only the Toggle
| Word Wrap is there - not the AutoSum.
|
| It might have something to do with Control's ID property?  This code
| works, meaning I see "Test" in the in-cell shortcut menu:
|
| Public Sub testControls()
|  Dim cbar As Office.CommandBar
|  Dim ctrl As Office.CommandBarControl
|
|  Set cbar = CommandBars("Cell")
|
|  Set ctrl = cbar.Controls.Add(ID:=1)
|
|  ctrl.Visible = True
|  ctrl.Enabled = True
|  ctrl.Caption = "Test"
| End Sub
|
| > Very interesting.  It appears that what we see after right-clicking a
cell
| > is not the "cell" commandbar.  At least it is not the "cell" commandbar
we
| > can modified with code.
| >
| > After running your code run this:
| >
| >  commandbars("cell").ShowPopup
| >
| > You should see AutoSum at the bottom.  But notice that this commandbar
has
| > black font, not blue.  And that it doesn't have the floatie thing on
top.
| >
| > --
| >
| >| > | In 2003 I could do the following:
| > |
| > | Application.CommandBars("Cell").Controls.Add
| > | msoControlSplitButtonPopup, 226
| > |
| > | .......and an Autosum control would be created in the Cell menu.
| > |
| > | (I found 226 by recording a macro of changing a menu)
| > |
| > | In 2007 the above line doesn't seem to work. Although it doesn't throw
| > | an error either! ...
| > |
| > | Any help greatly appreciated
| > |
| > | Regards
| > | JasonQ
|




Hello Jim

Do you know if it is possible to alter the shadow menu?

Regards
JasonQ.
 

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