Коллекция Controls - это встроенная коллекция в объекте формы (например, UserForm), которая содержит все элементы управления (контролы), размещенные на этой форме.
Элементы управления могут включать кнопки, текстовые поля, метки, выпадающие списки (ComboBox), переключатели и другие виды контролов.
О том, как использовать Controls для управления элементами управления на форме в VBA рассмотрено в данном обзоре 😉.
📢 Файл с примером размещен в конце статьи 🔽
Коллекция Controls позволяет легко и эффективно управлять всеми контролами на форме, выполнять массовые операции и обеспечивать гибкость и динамичность в разработке пользовательских интерфейсов
▶️ Основные особенности коллекции Controls
- Доступ ко всем элементам управления на форме: коллекция Controls предоставляет простой способ доступа ко всем элементам управления, которые находятся на форме. Это позволяет легко перебирать их в цикле и выполнять операции над каждым из них.
- Итерация по элементам: Вы можете использовать цикл For Each для итерации по всем элементам управления в коллекции. Это полезно, когда нужно выполнить одинаковые операции для всех контролов или для определенного типа контролов (например, всех ComboBox).
- Доступ по имени: каждый элемент управления в коллекции Controls может быть доступен по имени. Это позволяет получать конкретный контрол, зная его имя, и выполнять операции над ним.
- Типизация элементов: элементы управления в коллекции Controls могут быть различного типа (например, ComboBox, TextBox, CommandButton и т.д.). Для выполнения операций, специфичных для конкретного типа контроля, необходимо проверять тип элемента, например, с помощью функции TypeName.
▶️ Примеры использования
Используя коллекцию Controls, можно выполнять различные операции над элементами управления, такие как изменение их свойств, добавление или удаление элементов, и другие манипуляции.
➡️ Получение доступа к контролу по имени
В данном примере коллекция Controls используется для получения доступа к конкретному элементу управления ComboBox по его имени "ComboBox1" и добавления в него нового элемента:
Результат
➡️ Итерация по всем элементам управления на форме
Для перебора нескольких ComboBox в цикле можно использовать коллекцию Controls формы.
Предположим, что у вас есть 5 (пять) ComboBox на форме, и их имена следуют шаблону, например, ComboBox1, ComboBox2, ..., ComboBox5.
Для перебора всех ComboBox на форме и выполнения каких-либо действий с каждым из них применим макрос:
🔔 Минус данного подхода - это явное указание имени.
✅ Если ComboBox могут иметь произвольные имена или количество их неизвестно, вы можете пройтись по всем элементам управления формы и проверить, является ли элемент управления ComboBox:
Этот код пройдет по всем элементам управления на форме и выполнит действия только с теми элементами, которые являются ComboBox:
➡️ Очистка всех ComboBox на форме
В данном примере коллекция Controls используется для итерации по всем элементам управления на форме.
Для каждого элемента управления проверяется, является ли он ComboBox. Если это так, то текст в этом ComboBox очищается:
➡️ Узнать больше о методах и приемах VBA Excel 🔽
🙌 Оставайся с нами на связи и узнавай больше о других методах и приемах работы в Excel:
✅ СКАЧАТЬ ПРИМЕР 🔽