Робота з формами в vba (excel)

Доброго вам дня! Сьогодні ми поговоримо про роботу з формами VBA, а також розглянемо практично поняття фільтрів і прапорів в VBA.

Форми в VBA

Спочатку трохи теорії. Форма - це багато в чому просто контейнер для зберігання інших елементів управління. Свого роду, посередник між користувачем і програмістом. Форма в VBA потрібна для того, щоб обмежити користувача нажиманием певних кнопок і не допустити зайвого втручання в код програми.

Трохи основних властивостей об'єкта Форма (UserForm):

Name - це властивість містить ім'я форми, або, точніше сказати, ім'я об'єкта. Потрібно розуміти, що дане значення є тільки в тілі програми і ніяк не впливає на кінцевий результат.
BackColor - містить колір фону.
BorderColor - колір рамки.
Caption - властивість визначає заголовок форми, фактично, це той же заголовок вікна програми. За замовчуванням, ця властивість містить те ж значення, що і властивість Name.
Enabled - приймає логічне True або False, і визначає, чи доступна форма.
ShowModal - може приймати тільки логічні значення. True - поки не буде закрита поточна форма, інша форма або повернення в документ будуть недоступні.
Font - визначає шрифт.
ForeColor - визначає колір переднього плану форми, наприклад, колір тексту.

Прапори і фільтри

Прапори - також звані checkbox в програмуванні. Можуть приймати тільки логічні значення. Зазвичай прапори ставлять навпроти питань (як відповідь Так / Ні) або функцій (виконувати / не виконувати).
Фільтри - в двох словах, процес перевірки на будь-яке умова.

Тепер розглянемо приклад, що відображає в собі роботу з формами, з прапорами і фільтрами в VBA.

Дана таблиця 4х5, в кожному осередку якої записані числа, "+". "-". слова, що починаються з великих і маленьких літер і символи, що не належать до алфавітом. Необхідно створити призначену для користувача форму з набором різних варіантів фільтрів.

Виглядає таблиця приблизно так:

Робота з формами в vba (excel)

створюємо форми

У коді дуже багато команд настройки і перевірки саме для форми, щоб виключити помилки в результаті. Ми розберемо лише основні алгоритми, весь код ви знайдете в исходнике нижче.

Під кнопку розрахунку йде такий код:

За допомогою даного циклу ми знаходимо все CheckBox і записуємо їх значення в масив, щоб нам було зручніше працювати.

Так як код дуже громіздкий, то настійно рекомендую вам завантажити вихідні нижче.
Спочатку очищаємо форму. Потім прописуємо в циклі умови в залежності від «піднятих» прапорів. Команди pr_chislo. pr_plus. pr_text викликають відповідні булеві функції, які будуть в исходнике нижче.

На основі повертаються від функцій значень побудуємо таблицю. Та осередок, яка не пройшла фільтрацію, записується як

Записуємо наш масив в другу форму.
На цьому ми закінчимо.

Поділитися посиланням:

Схожі статті