Storing Bitmap Images (Drawing Objects) in an Add-In
Tom,
Your suggestion worked beautifully. Thank you very much for the direction.
Frank
"Tom Ogilvy" wrote in message
...
Since the XLA will not be the activeworkbook, you need to qualify the
sheets
with ThisWorkbook
Worksheets("FJHMainXLA").DrawingObjects("Picture 10").Copy
would be
ThisWorkbook.Worksheets("FJHMainXLA").DrawingObjec ts("Picture 10").Copy
for example.
If you do that to all your sheet references, I would guess that it will
work.
--
Regards,
Tom Ogilvy
"Frank & Pam Hayes" wrote in message
news:u3n3d.3938$4j1.3471@trndny06...
Tom,
Thank you for the help, I can not tell you how many of your posts I have
read and learned from.
Maybe I am not referring to the worksheet explicitly enough. Here is the
code:
Sub CreateToolbar()
Dim cmdBar As CommandBar
Dim btnForm As CommandBarButton
' Delete the object if it already exists.
On Error Resume Next
Application.CommandBars("Frank's Favorites").Delete
'Set the CommandBar object variable.
Set cmdBar = Application.CommandBars.Add
cmdBar.Name = "Frank's Favorites"
'Add Format Input Cell Button
Worksheets("FJHMainXLA").DrawingObjects("Picture 10").Copy
With cmdBar.Controls
Set btnForm = .Add(msoControlButton)
End With
'Set the new button's properties.
With btnForm
.Style = msoButtonIconAndCaption
.Caption = " "
'.FaceId = 301
.PasteFace
.OnAction = "Format_Input_Cell"
.TooltipText = "Format Input Cell"
End With
'Add Format Header Button
Worksheets("FJHMainXLA").DrawingObjects("Picture 11").Copy
With cmdBar.Controls
Set btnForm = .Add(msoControlButton)
End With
'Set the new button's properties.
With btnForm
.Style = msoButtonIconAndCaption
.Caption = " "
'.FaceId = 333
.PasteFace
.OnAction = "Format_Header"
.TooltipText = "Format Header"
End With
'Add Gridline Toggle Button
With cmdBar.Controls
Set btnForm = .Add(msoControlButton)
End With
'Set the new button's properties.
With btnForm
.Style = msoButtonIconAndCaption
.Caption = " "
.FaceId = 86
.OnAction = "Gridlines"
.TooltipText = "Toggle Gridlines"
End With
'Add Formula Toggle Button
With cmdBar.Controls
Set btnForm = .Add(msoControlButton)
End With
'Set the new button's properties.
With btnForm
.Style = msoButtonIconAndCaption
.Caption = " "
.FaceId = 85
.OnAction = "Formulas"
.TooltipText = "Toggle Formulas"
End With
'Add Clean Selection Button
With cmdBar.Controls
Set btnForm = .Add(msoControlButton)
End With
'Set the new button's properties.
With btnForm
.Style = msoButtonIconAndCaption
.Caption = " "
.FaceId = 503
.OnAction = "CleanSelection"
.TooltipText = "Clean Selection"
End With
'Add Pivot Paste Button
Worksheets("FJHMainXLA").DrawingObjects("Picture 13").Copy
With cmdBar.Controls
Set btnForm = .Add(msoControlButton)
End With
'Set the new button's properties.
With btnForm
.Style = msoButtonIconAndCaption
.Caption = " "
'.FaceId = 2562
.PasteFace
.OnAction = "PivotPaste"
.TooltipText = "Pivot Table Paste"
End With
'Add Fill Blanks Button
Worksheets("FJHMainXLA").DrawingObjects("Picture 14").Copy
With cmdBar.Controls
Set btnForm = .Add(msoControlButton)
End With
'Set the new button's properties.
With btnForm
.Style = msoButtonIconAndCaption
.Caption = " "
'.FaceId = 294
.PasteFace
.OnAction = "FillBlanks"
.TooltipText = "Fill Blanks"
End With
'Add Delete Totals Button
Worksheets("FJHMainXLA").DrawingObjects("Picture 15").Copy
With cmdBar.Controls
Set btnForm = .Add(msoControlButton)
End With
'Set the new button's properties.
With btnForm
.Style = msoButtonIconAndCaption
.Caption = " "
'.FaceId = 292
.PasteFace
.OnAction = "Del_Total_Line"
.TooltipText = "Delete Total Lines"
End With
'Add Move Table Buton
Worksheets("FJHMainXLA").DrawingObjects("Picture 16").Copy
With cmdBar.Controls
Set btnForm = .Add(msoControlButton)
End With
'Set the new button's properties.
With btnForm
.Style = msoButtonIconAndCaption
.Caption = " "
'.FaceId = 173
.PasteFace
.OnAction = "MoveTable"
.TooltipText = "Move Pivot Table"
End With
'show the command bar
cmdBar.Visible = True
End Sub
"Tom Ogilvy" wrote in message
...
the sheets are hidden, but they don't go away.
I don't see any reason what you are doing shouldn't work as long as you
are
not trying to select things.
--
Regards,
Tom Ogilvy
"Frank & Pam Hayes" wrote in message
news:SQm3d.3937$4j1.3360@trndny06...
I have created a workbook to hold all my favorite macros. I have
created
a
macro that builds a custom toobar assigning a button to each of my
macros.
I have created custom Faces to use on each button, and use the
PasteFace
method to load the image onto the button. The images are stored on one
of
the worksheets in the file as objects, e.g "Picture 2". These images
were
created by customizing a toolbar button and then copying the image to
the
worksheet. The custom toolbar is created on the opening of the file
and
is
deleted on the closing of the file.
All this works perfectly. Howerver, I would like to figure out how to
save
this as an Add-In file so that I can share it with others. When I
save
it
as a XLA file, everything works flawlessly EXCEPT the button images
are
not
showing in the toolbar. If I use one of the default Face-Ids (using
the
.FaceId = # instead of the PasteFace), then the button shows the
image.
I am storing the Drawing Objects on a worksheet and I know that when I
create the XLA, that Worksheet goes away. So where can I store
Drawing
Objects so that the XLA can find them?
I know that there are a few thousand button images to choose from, but
I
just want to see if this would work.
Thanks,
Frank
|