I know selected picture is a shape but typename says is pictur
Thank you Norman and Stan.
The typos are only in the posting, not in thereal code.
What helped me was the line:
Dim oObj as Object
Dim oImage as Picture
Set oImage = oOBj ' THIS IS VALID, Hurray!
This definition allows to convert the object to Image, so I was albe to access all its properties with no doubt about it and avoiding the trial and error time. I really needed the conversion as I don't know if the user selected a picture, cell, etc, I was not able to set it as Picture at the begining as it would crash if something else was selected.
Thank you,
Carlos Lozano
"Norman Jones" wrote:
Hi Carlos,
In addition to the typo pointed out by Stan,
Dim oSheet as workhseet
should be
Dim oSheet as Worksheet
This version of your code worked for me:
Sub Test()
Dim oSheet As Worksheet
Dim oObj As Picture
Set oSheet = ActiveSheet
Set oObj = Selection
oObj.Left = oObj.Left - 60
End Sub
This version, where I move and resize the picture, also worked for me:
Sub Test2()
Dim oSheet As Worksheet
Dim oObj As ShapeRange
Set oSheet = ActiveSheet
Set oObj = Selection.ShapeRange
oObj.IncrementLeft 147.75
oObj.IncrementTop 11.25
oObj.ScaleWidth 0.9, msoFalse, msoScaleFromTopLeft
oObj.ScaleHeight 0.9, msoFalse, msoScaleFromTopLeft
End Sub
---
Regards,
Norman
"Carlos Lozano" wrote in message
...
Hi,
I am trying to move a shape that is selected to the left. Have the below
code:
Sub Test() Dim oShape as Shape
Dim oObj as Object ' I don't know if the shape or something else is
selected, so I get the object selected.
set oSheet = Application.ActiveSheet
oObj = Application.Selection
if TypetName(oObj) = "Picture" then
' Shape selected
set oShape = oObj ' Try to convert to oShape to access its
properties. I get an error type mismatch here
oShape.left = oShape.left - 60
end if
End Sub
Thank you,
Carlos Lozano
|