/ / Цикл через елементи керування в Excel VBA

Цикл через елементи керування в Excel VBA

За допомогою всього декількох рядків коду ми можемо легко цикл через елементи управління на Excel VBA Userform. Формат Userform, який ми збираємося створити, виглядає наступним чином:

Цикл через елементи керування в Excel VBA

Щоб створити цю Userform, виконайте наступні кроки.

1. Відкрийте редактор Visual Basic. Якщо Провідник проекту не відображається, натисніть Переглянути, Провідник проекту.

2. Клацніть Insert, Userform. Якщо панель інструментів не відображається автоматично, натисніть Переглянути, Панель інструментів. Ваш екран повинен бути налаштований як показано нижче.

Налаштування екрана Userform у програмі Excel VBA

3. Додайте мітку, встановіть прапорці (спочатку у верхній частині, другий під першим і так далі) та командну кнопку. Після того, як це буде завершено, результат має відповідати картині формату Userform, показаному раніше. Наприклад, створіть прапорець, натиснувши CheckBox з панелі інструментів. Далі ви можете перетягнути прапорець у Userform.

4 Ви можете змінювати імена та підписи елементів керування. Імена використовуються в коді Excel VBA. Підписи - це ті, які з'являються на вашому екрані. Рекомендовано змінити назви елементів керування, але тут немає необхідності, оскільки в цьому прикладі ми маємо лише декілька елементів керування. Щоб змінити заголовок форми Userform, мітки, прапорці та кнопки команд, натисніть кнопку «Перегляд», «Властивості» та клацніть по кожному елементу керування.

5. Щоб показати Userform, помістіть на вашій робочій клавіші команду та додайте наступну кодову рядок:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Тепер ми створили першу частину Userform. Хоча це виглядає вже акуратно, ще нічого не станеться, коли ми натискаємо кнопку "Очистити".

6. Відкрийте редактор Visual Basic.

7. У Провіднику проекту двічі клацніть на UserForm1.

8. Двічі клацніть на кнопці Очистити.

9. Додайте наступні кодові рядки:

Private Sub CommandButton1_Click()

Dim contr As control

For Each contr In UserForm1.Controls
    If TypeName(contr) = "CheckBox" Then
        contr.Value = False
    End If
Next

End Sub

Пояснення: Excel VBA петлі через всі елементи керування на Userform. Функція TypeName використовується для відфільтрування елементів керування прапорцями. Якщо встановити прапорець, Excel VBA зніме прапорець. Контр випадковим чином вибирається тут, ви можете використовувати будь-яке ім'я. Не забудьте вказати це ім'я в решті частини вашого коду.

Результат, коли ви натискаєте кнопку Очистити:

Цикл за допомогою результатів контролю

Також читайте: