Custom Toolbar Icons Ugly in Excel 2007

G

Greg Lovern

I have a custom toolbar icon that looked fine in Excel 2003 but now
looks ugly in Excel 2007. We want it to work in both Excel 2007 and
Excel 2003, so I can't just make a custom Excel 2007 Ribbon tab.

I'm trying it two different ways in Excel 2007, and getting the same
results both ways:

First way:

Dim cbc As Object 'CommandBarControl
Set cbc = cb.Controls.Add(msoControlButton)
cbc.BeginGroup = True
cbc.Caption = "My Icon"
cbc.FaceId = 176
cbc.Style = msoButtonIcon
'Toolbar must be hidden while icon is replaced:
cb.Visible = False
shIcons.Shapes("16x16x256").Copy 'shIcons is a worksheet.
cbc.PasteFace
cb.Visible = True

Second Way:
(Thanks to KeepITCool's posts here)

Dim oMask As stdole.StdPicture
Dim cbc As Object 'CommandBarControl
Set cbc = cb.Controls.Add(msoControlButton)
cbc.BeginGroup = True
cbc.Caption = "My Icon"
cbc.FaceId = 176
cbc.Style = msoButtonIcon
'Toolbar must be hidden while icon is replaced:
cb.Visible = False
shIcons.Shapes("16x16x256_mask").CopyPicture xlScreen, xlBitmap
cbc.PasteFace
Set oMask = CallByName(cbc, "Picture", VbGet)
shIcons.Shapes("16x16x256").CopyPicture xlScreen, xlBitmap
cbc.PasteFace
CallByName cbc, "Mask", VbLet, oMask
cb.Visible = True


The second way looks better in Excel 2003, but both ways look very bad
in Excel 2007.

Any suggestions?


Thanks,

Greg
 
P

PJ

Sorry Greg, I do not have an answer for your post. I have a similar question
that is why I am adding it to your thread. I am looking for a way to add
customer icons to the toolbar. Do you know of a way?
 
P

PJ

CUSTOM icons, not customer icons. oops.

PJ said:
Sorry Greg, I do not have an answer for your post. I have a similar question
that is why I am adding it to your thread. I am looking for a way to add
customer icons to the toolbar. Do you know of a way?
 
G

Greg Lovern

My original post, to which you replied, shows two ways. Both work for
me. In Excel 2003, the longer way results in a slightly better-looking
icon.

Greg
 

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