Инициализация формы
Итак, перейдем непосредственно к написанию кода процедуры. Для ввода кода программы опять необходимо перейти в окно редактора кода, для чего выделите форму и нажмите клавишу F7.
Программа 22.3. Работа с файлами.
Sub Init_Series() Dim inifile As IntegerDim srv As Stringinifile = FreeFile iniPath = "C:\bookseries.ini"Открываем файл для чтения Open iniPath For Input As tinifile DoInput tinifile, tmp series.Addltem tmp Цикл до конца файла Loop Until EOF(inifile) series.Listlndex = 0 End SubПрокомментируем эту программу. Сначала объявляется переменная inifile, с которой будет отождествлен файл. Далее открывается файл bookseries.ini (хранящийся в корне диска С), после чего в цикле от начала до конца файла считываются построчно значения для списка серий.
Естественно, что и вызов процедуры init_Series необходимо поместить в тело конструктора userForm_initialize, который теперь будет выглядеть следующим образом.
Программа 22.4. Вызов процедуры lnit_Series из конструктора.
Private Sub UserForm_Initialize() Init_Duration Init_Series End SubВзятие данных из Outlook
В предыдущей программе мы заполняли список динамически, считывая данные из файла. Переходя к инициализации списка авторов, отметим, что эта информация также способна динамически изменяться, но в отличие от серии книг, информация о писателях (по условиям задачи) хранится в Outlook, более того, условимся, что она хранится в отдельной папке Writers, являющейся подпапкой папки Contacts. Тогда процедура инициализации будет выглядеть следующим образом.
Программа 22.5. Инициализация данных из Outlook.
Sub Init_Authors() Объявление переменных Dim nms As NameSpace Dim fldContacts As MAPIFolder Dim itms As Collection Dim itm As IntegerСоздание объекта, указывающего на данные Outlook Set nms = Application.GetNamespace("MAPI") Создание объекта, указывающего на папку Контакты Set fldContacts = nms.GetDefaultFolder(olFolderContacts) Присваеваем объекту значение подпапки Writers Set fldContacts = fldContacts.Folders("Writers") создание объекта(семейство), содержащего все элементы папки Контакты Set itms = fldContacts.items Организация цикла по всем контактам в папке For itm = 1 To itms.Count With itms(itm) Инициализация списка именами контактов authors.Addltem.LastNameAndFirstName.End WithNextauthors.Listlndex = 0 End SubИтак, прежде всего, мы объявляем ряд переменных, после чего получаем ссылку на папку с контактами и организуем цикл по всем ее элементам. Как видите, все достаточно просто.
