VB.NET Inserted Picture Ends Up in Wrong Cell

E

eBob.com

I've spent about 5 hours tonight trying to find out how to insert a picture
into a cell using VB.NET. It turns out I was finding code which (ALMOST)
works but Intellisense kept telling me that ActiveSheet does not have a
Pictures method. When, in desperation, I finally decided to just try to run
the code despite the Intellisense warning, it worked!, ALMOST.

The almost part is that the picture ends up in the wrong cell. I use the
following code ...

objSheet.Range("A1").Select()
objSheet.Pictures.insert("e:\temp\jpeg samples\s_01.jpg")

but the picture ends up in row 4, column B. I've tried other arguments to
the Range method but the picture always ends up in row 4, column B.

Note that this is not VBA. I am using VB.NET and an Interop Assembly
(Microsoft Excel 12.0 Object Library / Imports Excel =
Microsoft.Office.Interop.Excel).

I'd sure appreciate any thoughts anyone might have. The next thing that
I'll have to do is to get the picture sized correctly, if you'd care to
offer any help in that area.

Thanks, Bob
 
J

joel

I don't know VB Net but I will try to answer your question. The inser
picture method you can't specify the location. You have to insert th
picture then move it using the picture propertie
.left,.width,.top,.height.

The .left,.top,.top., height are pixel locations that are equivalen
for pictures (shapes) and cells. shapes are not part of the cel
structure and actually sit ontop of the worksheet (not in the sheet).

My VB Net coe may not work. Make changes as required

from
objSheet.Pictures.insert("e:\temp\jpeg samples\s_01.jpg")
to
set obj = objSheet.Pictures.insert("e:\temp\jpeg samples\s_01.jpg")
obj.left = range("B4").left
obj.width = range("B4").width
obj.top = range("B4").top
obj.height = range("B4").heigh
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top