Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Перебор элементов управления на рабочем листе Добавлено: 02.02.07 00:37  

Автор вопроса:  APS | ICQ: 234458121 
Каким образом можно перебрать все элементы управления, которые находятся на рабочем листе, а не на форме. Как я понял, на рабочем листе нет семейства Controls, как в форме.
Прямое обращение к каждому элементу управления очень утомительно, т.к. их достатачно много. Необходимо пролистать все элементы управления (CheckBox, OptionButton) и собрать с них установленные значения.

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 GenyaA



Вопросов: 0
Ответов: 185
 Web-сайт: www.genyaa.nm.ru
 Профиль | | #1
Добавлено: 02.02.07 08:00
Все элементы управления на листе находятся в коллекции Shapes... Нужно только анализировать их свойство Type - элементы управления имеют значение msoOLEControlObject

With WorkSheets(1)
   For Each ss in .Shapes
      If ss.Type = msoOLEControlObject Then
        Debug.Print ss.Name
        'здесь ss - это элемент управления на листе
      End if
   Next ss
End With

Ответить

Номер ответа: 2
Автор ответа:
 APS



ICQ: 234458121 

Вопросов: 38
Ответов: 107
 Профиль | | #2 Добавлено: 19.02.07 11:35
Прекрасно. Все работает. Только вот в каком порядке он их перебирает? По мере их создания что ли? Можно ли изменить этот порядок?

Ответить

Номер ответа: 3
Автор ответа:
 GenyaA



Вопросов: 0
Ответов: 185
 Web-сайт: www.genyaa.nm.ru
 Профиль | | #3
Добавлено: 19.02.07 13:40
Да, перебор идет в порядке их создания... точнее в порядке возрастания их свойства Item, который присваивается в порядке их создания.

Чтобы понять, какой совет можно дать по поводу того, как изменить порядок, нужно знать цель и смысл, зачем это нужно.

В самом же общем случае, всегда можно создать массив объектов или их коллекцию в нужном порядке и работать с этим массивом или коллекцией.

Ответить

Номер ответа: 4
Автор ответа:
 APS



ICQ: 234458121 

Вопросов: 38
Ответов: 107
 Профиль | | #4 Добавлено: 21.02.07 11:26
Смысл в упрощении порядка. Т.е. чтобы свойство Item соответствовало физическому размещению фигур на листе. У меня есть набор чек-боксов, расположенных в виде таблицы 4х3. Хотелось бы чтобы они перебирались либо по строкам, либо по столбцам, а они перебираются в хаотичном порядке.

Именно и пришлось создавать массив, чтобы их там упорядочить так как надо.

Спасибо.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам