Hi keepITcool,
That's new to me - cool!
What I've done when making icons is to save the icon image with the mask
colour already set. Several image editors provide this option, though I
guess it only works with images of 256 colours or less.
Insert into a sheet and copy just the one image to a button. In other words
no need for a separate mask image and the final icon should look same in all
versions, I think (?) Requires simply (from your routine) for all versions:
shpIcon.CopyPicture xlScreen, xlPicture
oBtn.PasteFace
Regards,
Peter T
"keepITcool" wrote in message
if you want to create your own icons:
get an icon editor:
I like ArtIcons Pro.
Since toolbars use 16x16px 24mill color, no need for fancy editors like
AWicons, since you cannot use 32bit transparency on toolbar buttons.
Then you export 2 bitmaps: "Picture", and the "Mask"
(the mask is a B&W bitmap used to set the transparent areas)
Insert the icons as pictures in a sheet
(OR use an ImageList ActiveX control...)
Use picture toolbar to set the transparent color
on the colored "Pict" (needed for earlier versions than xlXP)
From Office XP and newer commandbar buttons have an exposed
Picture and Mask property, so the buttons can be "ultra sharp".
I use following routine which works in all versions.
and which I call from my MakeMenu procedure.
ByVal arguments were used so you have a bit more flexibility in
the datatype of your object variables in the calling procedure.
For StdOle.StdPicture you need a reference to Ole Automation
(but that should be activated anyway)
Sub SetIcon(ByVal oBtn As Office.CommandBarButton, _
ByVal shpIcon As Excel.Shape, _
ByVal shpMask As Excel.Shape)
Dim oMask As stdole.StdPicture
On Error GoTo endH:
If Val(Application.Version) < 10 Then
'Run for xl97/xl2k
shpIcon.CopyPicture xlScreen, xlPicture
oBtn.PasteFace
Else
#If VBA6 Then
'Compile for xl2K+
'Run for xlXP+
'Avoid compile error in xl2k by using callbyname
shpMask.CopyPicture xlScreen, xlBitmap
oBtn.PasteFace
Set oMask = CallByName(oBtn, "Picture", VbGet)
shpIcon.CopyPicture xlScreen, xlBitmap
oBtn.PasteFace
CallByName oBtn, "Mask", VbLet, oMask
#End If
End If
endH:
'Clear clipboard by copying an empty cell
Range("iv65536").Copy
Application.CutCopyMode = False
End Sub
hth
--
keepITcool
| www.XLsupport.com | keepITcool chello nl | amsterdam
Mark Dev wrote :
All,
Can anyone give me some advice on the best method for creating custom
icons to use on my Add-In toolbar buttons? What's the process? What
tools are required?
Thanks