I'm trying to create a toolbar and having the same trouble everyone
does with the button faces. This MS help topic is great:
http://support.microsoft.com/?id=288771
HOWTO: Create a Transparent Picture For Office CommandBar Buttons
It works when you load a picture from a bmp file.:
Set oPic = LoadPicture("c:\testbmp.bmp")
I also tried it by using a bmp loaded into a picturebox.
Set oPic = Picture1.image
But it doesn't work and doesn't give me a transparent button. Any idea
why?
The reason:
An excel.Picture object is not the same as a stdole.StdPicture
either:
for xl97 (non transparent)
With ctl
Sheet1.Shapes("Icon1").CopyPicture xlScreen, xlBitmap
.PasteFace
End With
for xl2k+
i use an imagelist control on an (empty) userform
to store the 256color bitmaps: the colored picture and the monochrome
mask. The Picture property from an imagelist can be used for icons.
code below is from an addin which needs to be xl97 compatible.
#If VBA6 Then
With ctlWizard
cbr.Protection = msoBarNoProtection
CallByName ctl, "picture", VbLet, _
frmIcons.iml.ListImages("pict").Picture
CallByName ctl, "mask", VbLet, _
frmIcons.iml.ListImages("mask").Picture
End With
Unload frmAbout
#End If
--
keepITcool
| www.XLsupport.com | keepITcool chello nl | amsterdam
ckoch wrote :
> I'm trying to create a toolbar and having the same trouble everyone
> does with the button faces. This MS help topic is great:
> http://support.microsoft.com/?id=288771
> HOWTO: Create a Transparent Picture For Office CommandBar Buttons
>
> It works when you load a picture from a bmp file.:
> Set oPic = LoadPicture("c:\testbmp.bmp")
>
> I also tried it by using a bmp loaded into a picturebox.
> Set oPic = Picture1.image
>
> But it doesn't work and doesn't give me a transparent button. Any idea
> why?
Worked perfect with the imagelist. Thanks so much.
Be aware though Pciture/Mask exist only from
OfficeXP/2003 (doesnot exist for Office 2000/Office97
Sub IconSnippet()
Dim ctl As Office.CommandBarButton
Select Case Val(Application.Version)
Case Is < 10
With ctl
Sheet1.Shapes("Icon1").CopyPicture xlScreen, xlBitmap
.PasteFace
End With
Case 10-11
#If VBA6 Then
CallByName ctl, "picture", VbLet, _
frmIcons.iml.ListImages("Pict1").Picture
CallByName ctl, "mask", VbLet, _
frmIcons.iml.ListImages("Mask1").Picture
End With
Unload frmIcons
#End If
End If
--
keepITcool
| www.XLsupport.com | keepITcool chello nl | amsterdam
ckoch wrote :
> Worked perfect with the imagelist. Thanks so much.
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks