Глава 20. Десятка (без трех) эффектных решений с помощью VBA.
Глава 20. Десятка (без трех) эффектных решений с помощью VBA.
В этой главе ...
~ Сохранение установок программы в реестре Windows и извлечение их оттуда
~ Доступ к объектам других приложений
~ Работа с базами данных в VBA
~ Сохранение информации на диске и ее чтение с диска
~ Сохранение табличной информации в объектах Dictionary
~ Создание своих собственных объектов
~ Установка элементов управления ActiveX
Прочитав книгу до этой главы (а значит, большую ее часть), вы стали почти экспертом по VBA. Теперь вас уже не нужно постоянно вести за ручку, поэтому в этой главе, знакомящей с целым рядом важных приемов программирования в VBA, описания будут довольно сжатыми. Вы сможете воспользоваться предлагаемой здесь информацией на практике, чтобы почувствовать удовольствие от освоения достаточно тонких приемов программирования.
Сохранение информации в реестре Windows
Чтобы сохранить установки и значения других переменных, можно использовать небольшие файлы на диске, но реестр Windows как раз и предназначен для хранения подобных данных. VBA обеспечивает все необходимые средства для создания параметров реестра, размещения там данных и последующего извлечения информации.
Сохранение элемента информации в реестре осуществляет оператор Save Settings, который автоматически создаст заданный вами параметр, если его в реестре не окажется. Синтаксис оператора следующий:
Save Settings приложение, раздел, параметр, значение
Здесь приложение, раздел и параметр- это имена соответствующих уровней иерархии реестра. Все установки реестра для одной 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 дает возможность удалить как значение, хранящееся в реестре, так и сам параметр.