Иллюстрированный самоучитель по Microsoft Outlook 2002

Инициализация формы

Итак, перейдем непосредственно к написанию кода процедуры. Для ввода кода программы опять необходимо перейти в окно редактора кода, для чего выделите форму и нажмите клавишу 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

Итак, прежде всего, мы объявляем ряд переменных, после чего получаем ссылку на папку с контактами и организуем цикл по всем ее элементам. Как видите, все достаточно просто.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.