order of toolbars in Excel 2007

J

JeffreyW

Well, I'm not sure if anyone has explored the Office 2007 enough to be able
to answer this question or not, but thought I'd give it a shot. I have an
Add-In that I've developed, compatible with Excel 2000 through Excel 2003 and
am looking for a way to control the order of 3 Custom Toolbars the Add-in
deploys in the Add-Ins Tab of Excel 2007's "Ribbon". After quite a bit of
finagling, the present code makes use of the following approach (not actually
what I'm using because I had to monkey around with it and repeat some of the
code because it didn't always work across all 3 Excel versions without the
repetitive code, but it should suffice to convey the method):

With Application.CommandBars("1st Toolbar")
..Enabled = True
..Visible = True
..Position = msoBarTop
..Left = 0
End With
With Application.CommandBars("2nd Toolbar")
..Enabled = True
..Visible = True
..RowIndex = 2
..Left = 0
End With
With Application.CommandBars("3rd Toolbar")
..Enabled = True
..Visible = True
..RowIndex = msoBarRowLast
..Left = 0
End With

This code is seemingly ignored in Excel 2007 and the Toolbars are deployed
in a fashion I can't make sense of - I initially thought they might be sorted
alphanumerically and tried renaming the toolbars to see if that was the
trick, but that didn't work either. It also appeared that the toolbars were
deployed in the reverse order of what had been evident in Excel 2003, so I
tried re-ordering the code to see if that would force it to correct itself,
but no joy there, either. If anyone has any ideas on how to make this work in
Excel 2007, I'd love to hear them.

Thanks,

Jeff
 
J

Jim Rech

Well, I did a little experiment and it looks that the toolbars appear in the
order they were created, as opposed to the order they were made visible.
What do you think?

Sub MakeCmdbars()
MakeBar "Bar1", 1
MakeBar "Bar2", 4
MakeBar "Bar3", 7
CommandBars("Bar3").Visible = True
CommandBars("Bar2").Visible = True
CommandBars("Bar1").Visible = True
End Sub

Sub MakeBar(Nm As String, Seed As Integer)
Dim Counter As Integer
On Error Resume Next
CommandBars(Nm).Delete
On Error GoTo 0
With CommandBars.Add(Nm, , , True)
For Counter = Seed To Seed + 2
With .Controls.Add(msoControlButton)
.Style = 2
.Caption = "Control " & Counter
End With
Next
End With
End Sub
 
J

JeffreyW

Thanks for logging in on this, Jim. Interesting theory but in my case, I
don't know that it applies because my toolbars were not made with code but
manually through the toolbar Customization interface. I haven't been able to
find a way to change the way Excel 2007 orders such toolbars.

Jeff
 

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