Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

VBA Excel Как передать в переменную типа Shape выбранную картинку находящуюся в Selection

Евгений Иванов Ученик (162), на голосовании 4 дня назад
If TypeName(Selection) = "Picture" Then
Dim o as Object
Dim sh As Shape
Set o = Selection ' передаётся в объект
set sh = o ' не передаётся, нужно делать приведение типов, а как это делать в вба?
End If

Заведомо спасибо адекватно отвечающим
Дополнен 1 месяц назад
Похоже разобрался, но всё же метод можно улучшить
If TypeName(Selection) = "Picture" Then
Dim o
Dim sh As Shape
Debug.Print Selection.Name
Dim ws As Worksheet
Set ws = Selection.Parent
Set sh = ws.Shapes( Selection.Name )
End If
Дополнен 1 месяц назад
Dsd ответил как нужно, вопрос закрыт
Голосование за лучший ответ
DsD Просветленный (25638) 1 месяц назад
 Set sh = Selection.ShapeRange(1) 
Евгений ИвановУченик (162) 1 месяц назад
не, не то, я уже написал дополнение.
но было бы неплохо как-то через приведение типов классов, но похоже этого нет в VBA или я чего-то не знаю
Евгений ИвановУченик (162) 1 месяц назад
Всё верно! я неверно понял, хороший способ. Благодарю
Похожие вопросы