VBA - Додавання елементів керування динамічно в Userform

Щоб створити підтримку для цієї демонстрації, ми використали приклад калькулятора, але цього разу ми створюємо всі елементи керування динамічно.

Коли динамічно створюються елементи керування у формі користувача, Excel не розпізнає назви елементів керування. Це означає, що події, створені елементами керування та їхніми властивостями, не будуть доступні через призначені імена. Наприклад, коли ви створюєте кнопку з таким кодом:

Встановити Bouton = Me.Controls.Add ("Forms.CommandButton.1", "Bt" & i, True)

Назва кнопки буде (у випадку, якщо i = 1) BT1

Але подія Private Sub BT1_Click () ніколи не буде згенерована. Для обробки цієї проблеми ви використовували колекції об'єктів для властивостей і колекцій класів для подій. Колекції об'єктів не тільки містять елемент керування, але й ключ до його посилання. Налаштувавши властивість тегів елементів керування з потрібним індексом, колекція класу може повернути індекс, який також дозволяє дізнатися, який елемент керування був предметом цієї події.

У дизайні UserForm немає контролю. Всі елементи керування динамічно створюються калькулятором, включаючи контейнер кадрів. Демо також дає можливість включити кнопки в кадрах

Завантажити:

Сервер 1: Додати контроль UserForm.xls

Попередня Стаття Наступна Стаття

Кращі Поради