Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5
Default Adding custom faces-icons to toobar buttons.

Hi

I'm developing some addins that have functionality accessed from a
custom toolbar.

I want to be able to add a button to the toolbar with an icon of my own
- not using one of the built in FaceID's.

Is there an easy way of doing this in code?

I need to be able to generate the Toolbar dynamically depending on
wether the addin is loaded ot not - so manually editing the image, in
the toolbar, which gets persisted in the Excel.xlb file, is not the
ideal solution.

If anybody has worked this out I would be very grateful to here of any
suggestions.

(I have worked out a way of doing it but it is causing other issues
which I can't seem to get around).

Thanks

Mark

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Adding custom faces-icons to toobar buttons.

In xl2002 and later, the button has a picture property.

The help example:

Sub ChangeButtonImage() Dim picPicture As IPictureDisp Dim picMask As
IPictureDisp Set picPicture = stdole.StdFunctions.LoadPicture( _
"c:\images\picture.bmp") Set picMask = stdole.StdFunctions.LoadPicture( _
"c:\images\mask.bmp") 'Reference the first button on the first command
bar 'using a With...End With block. With
Application.CommandBars.FindControl(msoControlButt on) 'Change the
button image. .Picture = picPicture 'Use the second image to
define the area of the 'button that should be transparent.
..Mask = picMask End WithEnd SubOr you can use copy , then pasteface. In
this case, the image would have to be stored on a hidden sheet (for
example). Some other suggestions have been to build a toolbar with the icons
you want and attach it to the file. Then you can copy the icons from that
toolbar.-- Regards,Tom Ogilvy"MarkHG" wrote
in message ups.com...
Hi

I'm developing some addins that have functionality accessed from a
custom toolbar.

I want to be able to add a button to the toolbar with an icon of my own
- not using one of the built in FaceID's.

Is there an easy way of doing this in code?

I need to be able to generate the Toolbar dynamically depending on
wether the addin is loaded ot not - so manually editing the image, in
the toolbar, which gets persisted in the Excel.xlb file, is not the
ideal solution.

If anybody has worked this out I would be very grateful to here of any
suggestions.

(I have worked out a way of doing it but it is causing other issues
which I can't seem to get around).

Thanks

Mark



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,758
Default Adding custom faces-icons to toobar buttons.

Wraptext problem:

Option Explicit

Sub ChangeButtonImage()
Dim picPicture As IPictureDisp
Dim picMask As IPictureDisp
Set picPicture = stdole.StdFunctions.LoadPicture( _
"c:\images\picture.bmp")
Set picMask = stdole.StdFunctions.LoadPicture( _
"c:\images\mask.bmp")

'Reference the first button on the first commandbar
'using a With...End With block.
With Application.CommandBars.FindControl(msoControlButt on)
'Change the button image.
.Picture = picPicture
'Use the second image to define the area of the
'button that should be transparent.
.Mask = picMask
End With
End Sub



Tom Ogilvy wrote:

In xl2002 and later, the button has a picture property.

The help example:

Sub ChangeButtonImage() Dim picPicture As IPictureDisp Dim picMask As
IPictureDisp Set picPicture = stdole.StdFunctions.LoadPicture( _
"c:\images\picture.bmp") Set picMask = stdole.StdFunctions.LoadPicture( _
"c:\images\mask.bmp") 'Reference the first button on the first command
bar 'using a With...End With block. With
Application.CommandBars.FindControl(msoControlButt on) 'Change the
button image. .Picture = picPicture 'Use the second image to
define the area of the 'button that should be transparent.
.Mask = picMask End WithEnd SubOr you can use copy , then pasteface. In
this case, the image would have to be stored on a hidden sheet (for
example). Some other suggestions have been to build a toolbar with the icons
you want and attach it to the file. Then you can copy the icons from that
toolbar.-- Regards,Tom Ogilvy"MarkHG" wrote
in message ups.com...
Hi

I'm developing some addins that have functionality accessed from a
custom toolbar.

I want to be able to add a button to the toolbar with an icon of my own
- not using one of the built in FaceID's.

Is there an easy way of doing this in code?

I need to be able to generate the Toolbar dynamically depending on
wether the addin is loaded ot not - so manually editing the image, in
the toolbar, which gets persisted in the Excel.xlb file, is not the
ideal solution.

If anybody has worked this out I would be very grateful to here of any
suggestions.

(I have worked out a way of doing it but it is causing other issues
which I can't seem to get around).

Thanks

Mark


--

Dave Peterson
  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Adding custom faces-icons to toobar buttons.

Guess that's what's great about HTML help, it screws things up even when you
pass it through notepad.

Thanks.
--
Regards,
Tom Ogilvy

"Dave Peterson" wrote in message
...
Wraptext problem:

Option Explicit

Sub ChangeButtonImage()
Dim picPicture As IPictureDisp
Dim picMask As IPictureDisp
Set picPicture = stdole.StdFunctions.LoadPicture( _
"c:\images\picture.bmp")
Set picMask = stdole.StdFunctions.LoadPicture( _
"c:\images\mask.bmp")

'Reference the first button on the first commandbar
'using a With...End With block.
With Application.CommandBars.FindControl(msoControlButt on)
'Change the button image.
.Picture = picPicture
'Use the second image to define the area of the
'button that should be transparent.
.Mask = picMask
End With
End Sub



Tom Ogilvy wrote:

In xl2002 and later, the button has a picture property.

The help example:

Sub ChangeButtonImage() Dim picPicture As IPictureDisp Dim picMask

As
IPictureDisp Set picPicture = stdole.StdFunctions.LoadPicture( _
"c:\images\picture.bmp") Set picMask =

stdole.StdFunctions.LoadPicture( _
"c:\images\mask.bmp") 'Reference the first button on the first

command
bar 'using a With...End With block. With
Application.CommandBars.FindControl(msoControlButt on) 'Change the
button image. .Picture = picPicture 'Use the second image

to
define the area of the 'button that should be transparent.
.Mask = picMask End WithEnd SubOr you can use copy , then pasteface.

In
this case, the image would have to be stored on a hidden sheet (for
example). Some other suggestions have been to build a toolbar with the

icons
you want and attach it to the file. Then you can copy the icons from

that
toolbar.-- Regards,Tom Ogilvy"MarkHG"

wrote
in message ups.com...
Hi

I'm developing some addins that have functionality accessed from a
custom toolbar.

I want to be able to add a button to the toolbar with an icon of my

own
- not using one of the built in FaceID's.

Is there an easy way of doing this in code?

I need to be able to generate the Toolbar dynamically depending on
wether the addin is loaded ot not - so manually editing the image, in
the toolbar, which gets persisted in the Excel.xlb file, is not the
ideal solution.

If anybody has worked this out I would be very grateful to here of any
suggestions.

(I have worked out a way of doing it but it is causing other issues
which I can't seem to get around).

Thanks

Mark


--

Dave Peterson



  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5
Default Adding custom faces-icons to toobar buttons.

Thanks for that Tom - I think it will work in XL2000 as well
(hopefully).

I was using the copy and pasteface methods but was having problems with
Excels clipboard when switching between workbooks - I was wanting to
redraw the toolbar enabling/disabling functionality depending on what
type of workbook was open. I was refreshing the toolbar on the
sheet_activate events - the copy and paste face was messing up Excels
clipboard. I tried storing the clipboard contents in a DataObject
before copy the images then putting it back in but this was crashing
Excel.



  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5
Default Adding custom faces-icons to toobar buttons.

Just checked - no Picture property in XL2000 - so back to square one
really.

Thanks anyway.

  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Adding custom faces-icons to toobar buttons.

the dataobject only holds text strings.

You just need to put your images on a worksheets, then you can select them,
do copy, then use pasteface to put them on you toolbar. Alternately, you
can put them on a dummy toolbar attached to your workbook and do copyface to
get them and pasteface to transfer them.

Sub Test()
Dim cbrMenuCtrl As CommandBarButton
' image on worksheet named Init, first shape in the shapes
' collection for example (or give it a name)
Worksheets("Init").Shapes(1).Copy

Set cbrMenuCtrl = Application.CommandBars("Tools").Controls.Add
With cbrMenuCtrl
.Caption = "Hello"
.OnAction = ThisWorkbook.Name & "!blabla"
.PasteFace
End With

End Sub

--
Regards,
Tom Ogilvy

"MarkHG" wrote in message
ups.com...
Just checked - no Picture property in XL2000 - so back to square one
really.

Thanks anyway.



  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 694
Default Adding custom faces-icons to toobar buttons.

Hi,
Maybe there is a simpler way, not su
You can load a picture into a sheet, copy it, and paste onto the menu or
command bar button:
Dim wsh As Worksheet 'sheet where picture loads
Dim p As Picture
Dim c As CommandBarButton

Set wsh = ActiveSheet
Set p = ActiveSheet.Pictures.Insert("E:\My Pictures\291937c.jpg")
p.CopyPicture
Set c = Application.CommandBars("My Command Bar").Controls(1)
c.PasteFace
p.delete
Try to load only icons-size pix because the loading process takes quite some
time with l;arge picture.

Regards,
Sebastien

"MarkHG" wrote:

Hi

I'm developing some addins that have functionality accessed from a
custom toolbar.

I want to be able to add a button to the toolbar with an icon of my own
- not using one of the built in FaceID's.

Is there an easy way of doing this in code?

I need to be able to generate the Toolbar dynamically depending on
wether the addin is loaded ot not - so manually editing the image, in
the toolbar, which gets persisted in the Excel.xlb file, is not the
ideal solution.

If anybody has worked this out I would be very grateful to here of any
suggestions.

(I have worked out a way of doing it but it is causing other issues
which I can't seem to get around).

Thanks

Mark


Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Lose custom toobar settings MikeF Excel Discussion (Misc queries) 0 February 7th 08 02:52 PM
Lotus had buttons (icons) for first & last cell does excell? Marty New Users to Excel 5 July 8th 06 05:39 PM
Icons on buttons Christopher Anderson Excel Discussion (Misc queries) 5 December 21st 04 04:18 AM
Custom faces for custom menus/commandbars Stu Valentine Excel Programming 1 September 17th 04 04:28 AM
custom toolbar buttons are saved where? Excel loads twice bymistake and all my custom toolbar buttons get gone!!! Kevin Waite Excel Programming 2 March 3rd 04 03:31 PM


All times are GMT +1. The time now is 05:21 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"