Добрый день!
Делал небольшой проект на VBA и столкнулся со следующей проблемой.
VBA позволяет создать объект в памяти?
C# и другие языки позволяют сначала создать объект а потом добавить его
т.е. можно сделать примерно так:
Пример1
Dim shp as (new?) Shape
shp.Width=10
shp.Height=20
shp.Left=50
shp.Top=50
.......
'Добавляю готовую фигуру на Лист
ThisWorkbook.Sheets(1).Shapes.AddShape(shp)
'Продолжаю работать с объектом shp
shp.name="new_krug1"
и т.п.
Пример 2
На VBA пришлось делать так:
'Сначала объявляю
Dim shp As Shape
'Инициализирую и создаю с параметрами
Set shp = ThisWorkbook.Sheets(1).Shapes.AddShape(msoShapeOval, 50, 50, 50, 50)
'Меняю свойства
shp.name="Oval1"
Есть возможность сделать на ВБА что то подобное описанию из примера №1?
Делал небольшой проект на VBA и столкнулся со следующей проблемой.
VBA позволяет создать объект в памяти?
C# и другие языки позволяют сначала создать объект а потом добавить его
т.е. можно сделать примерно так:
Пример1
Dim shp as (new?) Shape
shp.Width=10
shp.Height=20
shp.Left=50
shp.Top=50
.......
'Добавляю готовую фигуру на Лист
ThisWorkbook.Sheets(1).Shapes.AddShape(shp)
'Продолжаю работать с объектом shp
shp.name="new_krug1"
и т.п.
Пример 2
На VBA пришлось делать так:
'Сначала объявляю
Dim shp As Shape
'Инициализирую и создаю с параметрами
Set shp = ThisWorkbook.Sheets(1).Shapes.AddShape(msoShapeOval, 50, 50, 50, 50)
'Меняю свойства
shp.name="Oval1"
Есть возможность сделать на ВБА что то подобное описанию из примера №1?