Страницы: 1
RSS
Как создать в vba массив из фигур и обратится к свойствам выделенных
 
Друзья. Доброго дня. Пытаюсь вспомнить азы программирования. И возникла необходимость работать в фигурами Shape. Допустим на листе находятся 10 фигур. 2 из которых я выделил мышкой. Хочу создать массив объектов arr(0) со свойством "выделенный".  Как это сделать?
 
на листе отмечено несколько фигур.
выполните
Код
  Dim a(), s, i&
  ReDim a(1 To Selection.Count): i = 1
  For Each s In Selection
    Set a(i) = s: i = i + 1
  Next
в массиве а - теперь отмеченные вами фигуры
хотя не уверен что вам нужно было именно это)  
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Именно это и нужно. Спасибо..


Еще вопрос, если можно , тоже касаемо объектов типа фигура. Объекты которые выделены, должны состоять в свою очередь из набора других фигур и замкнуты в группу под некоторым именем.

For Each obj In ActiveSheet.Shapes
   If obj.Type = msoGroup Then
    Debug.Print obj.Name
   End If
i = i + 1
Next

код выше проверяет этот факт.. А вот теперь нужно опять обратиться к дочерним объектам не разрушая группу и загнать эти объекты в массив. Как перебрать данные объекты ?
 
Код
For Each obj In ActiveSheet.Shapes
   If obj.Type = msoGroup Then
    Debug.Print obj.Name & "contains:"
    for each shp in obj.groupitems
      debug.print shp.name
    next
   End If
  i = i + 1
Next
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Шикарно!!! Спасибо.
Страницы: 1
Наверх