Чтение онлайн

на главную - закладки

Жанры

VBA для чайников

Каммингс Стив

Шрифт:

SaveSettings "Случайные цитаты", "Параметры", _

"Число вызовов", "6"

Последний аргумент, "6", задает реальные данные, которые должны быть помещены в реестр. На рис. 20.1 приведен результат выполнения этой строки программного кода.

Рис. 20.1. Вид реестра Windows после добавления пользовательского параметра

Подобным образом для извлечения данных из реестра используется функция Get Setting. В ее синтаксисе, показанном ниже, первые три аргумента обязательны, а аргумент по_умолчанию

не обязателен:

Get Setting приложение, раздел, параметр, по_умолчанию

Функция Get Setting используется, когда нужно выяснить, какое значение хранится в некотором параметре реестра. В программном коде нужно присвоить значение функции

Get Setting переменной (вроде String или Variant ), например, так:

sngЧисло = GetSetting("Случайные цитаты", "Параметры", _

"Число вызовов")

Последний аргумент, аргумент ло_умолчанию, определяет значение, которое должна вернуть функция Get Setting, если указанный параметр в реестре не найден.

В VBA есть еще две команды, предназначенные для работы с реестром.

* функция GetAllSettings возвращает список всех параметров и их значений

в форме двумерного массива строк.

* Оператор DeleteSetting дает возможность удалить как значение, хранящееся в реестре, так и сам параметр.

Доступ к объектам других приложений

За рамками вашего VBA-приложения лежит ослепительная страна других приложений, и ничто не мешает вам отправиться туда в путешествие с помощью VBA. Все больше приложений инкорпорирует объектную модель СОМ, нагло выставляя свои объекты напоказ таким образом, что вы получаете возможность доступа к ним из своих программ.

В качестве простого примера предположим, что необходимо построить организационную диаграмму в Visio, основываясь на данных, хранящихся в папках Microsoft Outlook. Если вы уже знаете, как создавать элементы графики и связи между ними в Visio, новым для вас будет только создание программного кола, позволяющего извлечь информацию, "прописанную" в Outlook.

Программа Outlook не предлагает полномасштабную поддержку средств разработки VBA программ (в частности, редактор Visual Basic), но Outlook выставляет для использования свои объекты в соответствии со стандартом СОМ. После установки связи с Outlook в VBA вы сможете использовать объекты Outlook в своей программе, как будто они родные для вашего "базового" приложения.

Основы межпрограммного взаимодействия

Первое правило очевидно; можно использовать объекты другого приложения, если оно установлено в системе. Если это условие выполнено, для работы с объектами приложения, поддерживающего стандарт СОМ, требуется выполнить ряд предварительных действий.

1. В редакторе Visual Basic добавить ссылку на объектную библиотеку внешнего приложения.

2. Объявить переменные для объектов, которые придется использовать в программе.

3. Создать экземпляры соответствующих объектов с помощью функции Сrеat eObject.

В следующих трех подразделах эти шаги рассматриваются детальнее.

Чтобы информировать Visual Basic об объектной

модели внешнего приложения, нужно добавить и активизировать ссылку на объектную библиотеку этого приложения. В окне редактора Visual Basic выберите Tools?References, чтобы открыть диалоговое окно References (Ссылки).

Если Outlook установлена на вашем компьютере, объектная библиотека Outlook уже должна присутствовать в списке Available References (Доступные ссылки) диалогового окна References. Ее нужно найти в этом списке и установить флажок рядом с ее именем, чтобы библиотека стала доступной. Если нужной библиотеки в списке не оказалось, добавьте ссылку в список сами, воспользовавшись кнопкой Browse (Обзор).

Переменные для объектов из внешних приложений объявляются стандартным для VBA образом. Чтобы узнать, какие объекты внешнего приложения доступны, используйте либо обозреватель объектов редактора Visual Basic, либо файл справки этого внешнего приложения. Операторы следующего фрагмента программного кода объявляют переменные для объектов Outlook, которые предполагается позже использовать в программе:

Dim objOutlook As Outlook.Application

Dim objOLNamespace As Outlook.NameSpace

Dim colFolders As Outlook.Folders ' коллекция папок

Dim objPeopleFolder As Outlook.MAPIFolder

Dim colPeople As Outlook.Items ' коллекция контактов

Dim objPerson As Object ' один отдельный контакт

Dim strName As String

Объявление объектов только говорит о вашем намерении использовать их. В дальнейшем вы должны создать необходимые объекты с помощью операторов Set внутри подходящих процедур.

При создании объекта из внешнего приложения используется функция СrеateObject. Она открывает соответствующее приложение, которое и создает нужный объект. Возвращаемое функцией значение будет ссылкой на объект, которую можно присвоить подходящей переменной. А чтобы открыть внешнее приложение с уже готовым файлом или документом, используйте функцию GetObject.

Вот программный код процедуры из примера Outlook+Visio, создающей экземпляры нужных объектов:

Sub PeopleDiagram

Set objOutlook = CreateObject("Outlook.Application")

' Используйте CreateObject("Outlook.Application.8")

' с другой версией Outlook

Set objOLNamespace = objOutlook.GetNamespace("MAPI")

Set colFolders = objOLNamespace.Folders ' все папки

Set objPeopleFolder = colFolders.Item("Personal Folders")

' определение переменных для движения внутрь папки

Set colFolders = objPeopleFolder.Folders

Set objPeopleFolder = colFolders.Item("Contacts")

Set colPeople = objPeopleFolder.Items

' вызов процедуры типа Sub, использующей данные Outlook

ChartAName

End Sub

Обратите внимание, что во многих случаях- и в этом примере тоже- функция СrеateObject нужна только один раз. После того как объект внешнего приложения создан, вы можете использовать его свойства и методы. Как правило, свойства включают другие объекты (в данном случае коллекция Folders, папки Personal Folders и Contacts, a также коллекцию объектов внутри папки Contacts ).

Поделиться:
Популярные книги

Черный дембель. Часть 5

Федин Андрей Анатольевич
5. Черный дембель
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Черный дембель. Часть 5

30 сребреников

Распопов Дмитрий Викторович
1. 30 сребреников
Фантастика:
попаданцы
альтернативная история
фэнтези
фантастика: прочее
5.00
рейтинг книги
30 сребреников

Жребий некроманта 2

Решетов Евгений Валерьевич
2. Жребий некроманта
Фантастика:
боевая фантастика
6.87
рейтинг книги
Жребий некроманта 2

Охота на разведенку

Зайцева Мария
Любовные романы:
современные любовные романы
эро литература
6.76
рейтинг книги
Охота на разведенку

Чужбина

Седой Василий
2. Дворянская кровь
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чужбина

Возвышение Меркурия. Книга 4

Кронос Александр
4. Меркурий
Фантастика:
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Возвышение Меркурия. Книга 4

Надуй щеки! Том 3

Вишневский Сергей Викторович
3. Чеболь за партой
Фантастика:
попаданцы
дорама
5.00
рейтинг книги
Надуй щеки! Том 3

Идеальный мир для Лекаря 16

Сапфир Олег
16. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 16

По воле короля

Леви Кира
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
По воле короля

Он тебя не любит(?)

Тоцка Тала
Любовные романы:
современные любовные романы
7.46
рейтинг книги
Он тебя не любит(?)

Курсант: назад в СССР 9

Дамиров Рафаэль
9. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: назад в СССР 9

Штуцер и тесак

Дроздов Анатолий Федорович
1. Штуцер и тесак
Фантастика:
боевая фантастика
альтернативная история
8.78
рейтинг книги
Штуцер и тесак

Камень Книга седьмая

Минин Станислав
7. Камень
Фантастика:
фэнтези
боевая фантастика
6.22
рейтинг книги
Камень Книга седьмая

Хозяйка дома в «Гиблых Пределах»

Нова Юлия
Любовные романы:
любовно-фантастические романы
5.75
рейтинг книги
Хозяйка дома в «Гиблых Пределах»