Userform Image Control and embedded images

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Howdy,

I have created a couple of Userforms that contain image controls. Given
that not everyone will have the images in the same path (or at all) I wanted
to include them on a worksheet. I have named the images, but how do I load
them into the Userform(s)? It appears the only way is to navigate to the
location on the harddrive.

TIA,
Tim
 
Tom,

Thanks for the link, I have reviewed that in the past, in addition to JWalk.
It seemed to me that a good portion of what they were doing was creating the
picture in the first place. I was hoping that since the pictures exist
already, that loading them would be easier. I guess the short answer is to
reference the picture, copy it to clipboard or create temp image and then
load it.

Regards,
Tim
 
Tim,

The following is a little hard to believe, but it works...

When using an Image Control on a user form,
copy your picture - (Ctrl + C)

In the properties window for the Image Control,
paste directly into the "Picture" property - (Ctrl + V)

Set the "Picture Size Property" to Zoom.
Adjust the size of the Image Control.

Jim Cone
San Francisco, USA
 
Jim,

Hard to believe or not, it appears to do the trick. I did try Copy/Paste
into the image control itself, never would have thought about into the path.
I wonder what the Achilles heel is for this method.

Regards,
Tim
 
Tim,

" I wonder what the Achilles heel is for this method."

Good question - however, I've sent add-ins, using this method,
to all parts of world without problems.

I didn't invent the technique, I believe it is Jim Rech that the
credit belongs to.

Regards,
Jim Cone
San Francisco, USA
 
This method is also mentioned in JWalk's XL2002 Power Programing w/VBA
(p386), albeit briefly.

Regards,
Tim
 
Yes, you would only need to use the code from the point the image is in the
clipboard.
 
The limitation is that you would never change the image in your application.
If that is your situation, then this should work for you.
 
Also, I guess the confusion for me is from your basic question.

When I use the property window to load an image in the userform by picking
it with the browse button, I can then save the excel file and close excel.
I can then delete the image, and when I open excel and show the userform,
the image is still in the image control. The original file is no longer
required. Thus my assumption that you needed to change the image
dynamically, thus requiring access to the image file with your work around
of putting the images on the worksheet. Where you experiencing different
behavior with reference to a static image?
 
Tom,

Thanks for the follow-up. I find it difficult to describe the question
concisely without being too concise, sorry for the confusion.

I was not aware that you could load the image from a file, save the XL file,
delete the image and life would be OK. That is the reason I put them on a
worksheet, to make sure they went with the file (which is obviously not
required). I am using the images in a userform that replaces a Msgbox
(adding a little jazz). Both methods seem to accomplish the same thing.

As an aside, I have opened this file in Mac XL and the image does not load,
using either method. Not that it is a big deal, don't anticpate much use on
the Mac, I just try not to forget them.

Regards,
Tim
 
MACs don't support activeX controls, so they don't support image controls.
(to the best of my knowledge -- I don't use or have access to a MAC, but
that is what I have seen reported here).
 
Tom,

I was not under the impression that all tools in visual basic were ActiveX.
With the exception of how the images are handled (see below), with Mac XL04,
I can see the command buttons, text boxes, etc. that I created in Wintel
XL03, including drilling down into the VB code (various events). There is
also a Toolbox with essentially the same base set of tools like Spinner,
Combo Box, Text Box, Image, etc. (no Additional Tools).

According to Mac XL04 Help file (in Visual Basic)

Differences between Excel VBA for Windows and Excel VBA for the Macintosh

Microsoft Excel for Windows and Microsoft Excel for the Macintosh both
provide specific support for the features and enhancements of the operating
system, or platform, that each product is designed for. (File-naming and
path-naming conventions and printer device support are examples of Windows-
and Macintosh-specific conventions.)
In addition, Excel for the Macintosh differs from Excel for Windows in the
following areas:
• On the Macintosh, ActiveX controls aren't available. The Additional
Controls command (Tools menu and Toolbox shortcut menu) is not available in
the Visual Basic Editor on the Macintosh.
• On the Macintosh, the PowerTalk mail system isn't supported.
• On the Macintosh, open database connectivity (ODBC) drivers are not
included with Excel.

Also Regarding pictures
Note When you share forms between a Windows-based computer and the
Macintosh, you may receive a run-time error message when you open a form that
contains a control with a picture on it. To avoid this problem when you are
sharing forms between a Windows-based computer and the Macintosh, use Windows
Bitmap (BMP) graphics only on form controls.

Not sure where I was headed, just sharing the information. I will spend a
little time this weekend looking at the bitmap image versus metafile.

Regards,
Tim
 
You can find those same controls on the forms toolbar in Excel for windows
(the textbox is on the drawing toolbar). So I suspect the macintosh
converts the ActiveX control to one of these and assigns the control to any
event defined for that control. I wonder what it does if you have both a
click and change event defined.

It might be easier to use a dialog sheet if you need Mac compatibility.
Since I have no first hand knowledge, the conversion using Userforms may be
flawless in a MAC. You might go to
news://msnews.microsoft.com/microsoft.public.mac.office.excel

and ask there.
 
Back
Top