VBA - Додавання елементів керування динамічно в Userform
Щоб створити підтримку для цієї демонстрації, ми використали приклад калькулятора, але цього разу ми створюємо всі елементи керування динамічно.
Коли динамічно створюються елементи керування у формі користувача, Excel не розпізнає назви елементів керування. Це означає, що події, створені елементами керування та їхніми властивостями, не будуть доступні через призначені імена. Наприклад, коли ви створюєте кнопку з таким кодом:
Встановити Bouton = Me.Controls.Add ("Forms.CommandButton.1", "Bt" & i, True)
Назва кнопки буде (у випадку, якщо i = 1) BT1
Але подія Private Sub BT1_Click () ніколи не буде згенерована. Для обробки цієї проблеми ви використовували колекції об'єктів для властивостей і колекцій класів для подій. Колекції об'єктів не тільки містять елемент керування, але й ключ до його посилання. Налаштувавши властивість тегів елементів керування з потрібним індексом, колекція класу може повернути індекс, який також дозволяє дізнатися, який елемент керування був предметом цієї події.
У дизайні UserForm немає контролю. Всі елементи керування динамічно створюються калькулятором, включаючи контейнер кадрів. Демо також дає можливість включити кнопки в кадрах
Завантажити:
Сервер 1: Додати контроль UserForm.xls