Инициализация формы
Итак, перейдем непосредственно к написанию кода процедуры. Для ввода кода программы опять необходимо перейти в окно редактора кода, для чего выделите форму и нажмите клавишу F7.
Программа 22.3. Работа с файлами.
Sub
Init_Series()
Dim
inifile
As
Integer
Dim
srv
As
String
inifile = FreeFile
iniPath =
"C:\bookseries.ini"
Открываем файл для чтения
Open iniPath
For
Input
As
tinifile
Do
Input 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
With
Next
authors.Listlndex = 0
End
Sub
Итак, прежде всего, мы объявляем ряд переменных, после чего получаем ссылку на папку с контактами и организуем цикл по всем ее элементам. Как видите, все достаточно просто.