Створення форм vba, властивості і методи форм

Створення форм VBA, властивості форм, методи Show (), Hide (), команда Unload, подія Initialize ()

Створення форм vba, властивості і методи форм

Мал. 5.1 Все готово для роботи з формою

Якщо у вас включений показ вікна властивостей (він включається по клавіші ), То в цьому вікні будуть представлені властивості форми. Перехід на код для цієї форми (за замовчуванням відкривається подія Click) - по клавіші , повернення назад у вікно дизайнера форм - по +.

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

Деякі найважливіші властивості форм (крім ShowModal, всі вони можуть бути і для інших елементів управління):

Велика частина основних властивостей відноситься до зовнішнього вигляду, розмірів і місцезнаходженням вікон.

Найважливіші методи форм:

Якщо форма вже була завантажена в пам'ять, вона просто стане видимою, якщо ще немає - то буде автоматично завантажена (відбудеться подія Load).

Саму цю команду, можна викликати, наприклад:

  • зі звичайного макросу, прив'язаного до кнопки або клавіатурній комбінації;
  • з автозапускаемой макросу (макросу з назвою AutoExec для Word);
  • з коду для елемента управління, розташованого в самому документі (наприклад, CommandButton) або на іншій формі - для переходу між формами;
  • помістити її в обробник події Open для документа Word або книги Excel, щоб форма відкривалася автоматично при відкритті документа.

Після того, як користувач введе / вибере потрібні дані на формі і натисне на необхідну кнопку, форму необхідно прибрати. Можна для цієї мети скористатися двома способами:

заховати форму (використовувати метод Hide ()), наприклад:

форма буде прибрана з екрана, але залишиться в пам'яті. Потім за допомогою методу Show () можна буде знову її викликати в тому ж стані, в якому вона була на момент "ховання", а, можна, наприклад, поки вона захована, програмно змінювати її і розташовані на ній елементи управління. Остаточно форма віддалиться з пам'яті при закритті документа;

якщо форма більше точно не буде потрібно, можна її видалити з пам'яті за допомогою команди Unload:

Найважливіша концепція VBA - події. Подія (event) - це щось, що відбувається з програмою і може бути їй розпізнано. Наприклад, до подій належать клацання мишею, натискання на клавіші, відкриття і закриття форм, переміщення форми по екрану і т.п. VBA побудований таким чином, щоб створювати на ньому програми, керовані подіями (event-driven). Такі програми протиставляються застарілому процедурного програмування.

Найважливіші події форм:

  • Initialize - відбувається при підготовці форми до відкриття (появі перед користувачем). Зазвичай в обробник для цієї події поміщається код, пов'язаний з відкриттям з'єднань бази даних, налаштуванням елементів управління на формі, присвоєння їм значень за замовчуванням і т.п.
  • Click (ця подія вибирається за замовчуванням) і DblClick - реакція на одиночний і подвійне клацання миші відповідно. Для форми ця подія використовується не так часто. Зазвичай обробник клацань використовується для кнопок (елементів управління CommandButton). Унаслідок простоти ми використали цю подію для демонстрації нашого коду.
  • Error - це подія використовується при виникненні помилки в формі, використовується як можливість надати користувачеві виправити зроблену ним помилку. Детальніше - в спеціальному модулі, присвяченому помилок і налагодженні.
  • Terminate - подія використовується при нормальному завершенні роботи форми і вивантаження її з пам'яті (наприклад, по команді Unload). Зазвичай використовується для розриву відкритих з'єднань з базою даних, звільнення ресурсів, протоколювання і т.п. Якщо робота форми завершується аварійно (наприклад, запустило форму додаток видало команду End), то ця подія не виникає.
  • інші події пов'язані або зі зміною розміру вікон, або з натисканнями клавіш, або з активізацією (отриманням фокуса) / деактивізації (втратою фокусу).

Оскільки форма - це багато в чому просто контейнер для зберігання інших елементів управління, головне її подія - Initialize. Всі інші події зазвичай використовуються не для форми, а для розташованих на ній елементів управління.

Деякі моменти, пов'язані зі створенням і редагуванням форм:

  • Форми, створювані в Microsoft Access, не є стандартними, як форми інших додатків Office, і набір властивостей і методів у них дещо відрізняється. Проте по функціональності вони практично однакові.
  • Іноді для обговорень форми зручно роздрукувати. Для цього передбачено спеціальне діалогове вікно, яке можна викликати після натискання кнопки +

    (При обраній формі в дизайнера).

  • Якщо всі потрібні вам елементи управління важко вмістити на одній формі (навіть великого розміру), в вашому розпорядженні два варіанти: скористатися двома формами (переходячи між ними за допомогою методів Show () і Hide (), підв'язаних до елементів управління) або скористатися декількома вкладками для форми. Для цієї мети в вашому розпорядженні - спеціальний елемент керування Multipage.