У попередньому розділі ми говорили про статичному зміні властивостей елементів управління, але це лише первинна настройка об'єктів форми. Як правило, основні властивості, пов'язані з ініціалізацією даних, переносяться в програмний модуль форми.
Розглядом ініціалізації подібних властивостей ми і займемося в цьому розділі, але для початку кілька слів про форму як такої. Якщо розглядати форму з позицій програмування, то вона являє собою не що інше, як клас VBA. Членами цього класу є елементи управління, розташовані на формі, а методами - show (показати форму), Hide (приховати форму) і т. Д. Більш того, користувач може додавати власні члени і методи.
Крім цього форма має і низку процедур реакції на подію, стандартними з яких для всіх класів VBA є initialize і Terminate (див. Розділ "Класи і об'єкти").
У наступних розділах детально описуються способи ініціалізації списків.
Статична заповнення списку
Програма 22.1. Статична заповнення списку
Пояснимо код програми. По-перше, ми створюємо процедуру, яку згодом будемо викликати з конструктора форми. По-друге, використовуючи оператор with, звертаємося до об'єкту форми duration. І нарешті, в циклі від 1 до 12 инициализируем список.
Після того як ми створили процедуру, її необхідно викликати. Природно, що всі процедури ініціалізації ми будемо розміщувати в конструкторі форми - процедурі - реакції на подію initialize.
Програма 22.2. Виклик процедури з конструктора
Тепер, натиснувши клавішу
Робота з файлами
Наступний список, який необхідно форматувати, - series. На відміну від duration, як було зазначено вище, цей список може змінюватися, тому ми вирішили зберігати список з назвою серій в спеціальному файлі bookseries.ini і забирати інформацію для ініціалізації саме звідти.
Мал. 22.4. Архітектура файлу bookseries.ini
Таким чином, користувачеві необхідно лише змінити назву нової серії в даний файл, як зроблені зміни тут же відображаються у формі. Архітектура файлу ініціалізації показана на рис. 22.4.
Програма 22.3. Робота з файлами
Природно, що і виклик процедури init_Series необхідно помістити в тіло конструктора userForm_initialize, який тепер буде виглядати наступним чином.
Програма 22.4. Виклик процедури lnit_Series з конструктора
Взяття даних з Outlook
Програма 22.5. Ініціалізація даних з Outlook
Отже, перш за все, ми оголошуємо ряд змінних, після чого отримуємо посилання на папку з контактами і організуємо цикл по всіх її елементів. Як бачите, все досить просто.