Страница: 1 |
Страница: 1 |
Вопрос: Перебор элементов управления на рабочем листе
Добавлено: 02.02.07 00:37
Автор вопроса: APS | ICQ: 234458121
Каким образом можно перебрать все элементы управления, которые находятся на рабочем листе, а не на форме. Как я понял, на рабочем листе нет семейства Controls, как в форме.
Прямое обращение к каждому элементу управления очень утомительно, т.к. их достатачно много. Необходимо пролистать все элементы управления (CheckBox, OptionButton) и собрать с них установленные значения.
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
GenyaA
Вопросов: 0
Ответов: 185
Web-сайт:
Профиль | | #1
Добавлено: 02.02.07 08:00
Все элементы управления на листе находятся в коллекции Shapes... Нужно только анализировать их свойство Type - элементы управления имеют значение msoOLEControlObject
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-сайт:
Профиль | | #3
Добавлено: 19.02.07 13:40
Да, перебор идет в порядке их создания... точнее в порядке возрастания их свойства Item, который присваивается в порядке их создания.
Чтобы понять, какой совет можно дать по поводу того, как изменить порядок, нужно знать цель и смысл, зачем это нужно.
В самом же общем случае, всегда можно создать массив объектов или их коллекцию в нужном порядке и работать с этим массивом или коллекцией.
Номер ответа: 4
Автор ответа:
APS
ICQ: 234458121
Вопросов: 38
Ответов: 107
Профиль | | #4
Добавлено: 21.02.07 11:26
Смысл в упрощении порядка. Т.е. чтобы свойство Item соответствовало физическому размещению фигур на листе. У меня есть набор чек-боксов, расположенных в виде таблицы 4х3. Хотелось бы чтобы они перебирались либо по строкам, либо по столбцам, а они перебираются в хаотичном порядке.
Именно и пришлось создавать массив, чтобы их там упорядочить так как надо.
Спасибо.