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

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

Жанры

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

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

Шрифт:

Приложение, которое вы открываете из своего программного кода, выполняется в скрытом виде - на экране оно не отображается. Это очень удобно, если вы хотите использовать в своей программе данные другого приложения, не раздражая при этом пользователя. Но иногда все же нужно показать приложение в его обычной форме. Тогда, в зависимости от приложения, нужно либо установить для свойства Visible значение True, либо использовать метод Display, как здесь: objPeopleFolder.Display

Теперь, наконец, вы готовы использовать объекты внешнего приложения в своей программе точно так же, как и те, которые пришли вместе с вашим VBA-приложением. Вот пример того, как это сделать в Visio при создании организационной диаграммы, использующей имена из папки Contacts, принадлежащей Outlook:

Sub ChartAName

For Each objPerson In colPeople

strName = objPerson.FullName

...( программный код построения диаграммы Visio на основе этих данных)

Next

End Sub

Программный код на Web-странице не содержит этой процедуры, поскольку я не знаю наверняка, что у вас есть Visio. Вместо вызова этой процедуры в процедуре PeopleDiagram просто отображается диалоговое окно при каждом обращении к данным Outlook. (Правда, у вас может не оказаться также и Outlook, в таком случае данный пример вообще не будет работать.)

Управление базами данных с помощью VBA

Если вы собираетесь использовать VBA для работы с данными, хранящимися в "реальных" базах данных типа файлов Microsoft Jet (формат баз данных, используемых

Access), SQL Server или dBase, то вам, мой друг, определенно потребуется помощь. И придет она от объектной библиотеки. Объектная библиотека для работы с базами данных превращает базы данных и их компоненты - таблицы, запросы и отчеты - в настоящие объекты со свойствами и методами. А когда база данных представлена в виде множества объектов, вам уже не нужно копаться в деталях ее структуры. Более того, один и тот же набор объектов можно использовать для работы со многими базами данных различных типов. Подробные сведения об управлении базами данных с помощью VBA изложены в главе 17.

Работа с файлами

С помощью специальной внешней объектной библиотеки VBA позволяет использовать объектно-ориентированный подход при работе с дисковыми файлами, в частности для чтения содержимого каталогов и копирования файлов. Соответствующие приемы программирования обсуждаются ниже, в разделах "Работа со свойствами файлов" и "Копирование, изменение и удаление файлов". Можно использовать также функции и операторы VBA, краткое описание которых вы найдете в табл. 11.9 (см. раздел "Работа с файлами").

Наступит время, когда вы захотите, чтобы ваша VBA-программа сохраняла информацию в файле на диске. Может быть, вам потребуется сохранить выбранные пользователем параметры установки, а может, вы пожелаете сохранить значения некоторых переменных, чтобы использовать их при следующем запуске программы. Или программе нужно сохранить в виде файла результаты множества вычислений, или работать с информацией, хранящейся в текстовом документе.

Независимо от того, доступ к какому объему информации вам нужен, VBA делает работу с файлами достаточно простой. Вам не придется выяснять, каким образом организована работа с файлами в Windows, - несколько простых объектов VBA и их методы сделают практически все за вас.

Учитывая меньшую значимость, я не говорю здесь о чтении и записи файлов документов вашего "базового" VBA-приложения. Ясно, что VBA-программы могут работать с информацией, содержащейся в таких документах, и обращаться с файлами документов как с единым целым (обычно с помощью методов Open и Save).

Принципы работы с файлами в VBA

Как уже говорилось в главе 11, VBA позволяет работать с файлами как с объектами и манипулировать файловыми объектами с помощью их свойств и методов.

Но это не стало органической частью VBA, а обеспечивается некоторой внешней объектной библиотекой. Как объясняется в следующем разделе, перед работой с файлами как с объектами необходимо добавить в программу ссылку на эту библиотеку.

VBA имеет также встроенную схему обработки файлов, в рамках которой файлы не трактуются как объекты. В этом случае для выполнения файловых операций используются операторы и функции, а не свойства и методы. Эта схема в VBA до сих пор работоспособна, но для большинства задач предпочтительнее иметь дело с файловыми объектами. Список соответствующих операторов и функций приведен в табл. 11.9, а информация об их использовании изложена в главе 18.

Ссылки на библиотеку Microsoft Scripting Runtime

Основные средства, необходимые для работы с файлами как с объектами, обеспечиваются объектной библиотекой Microsoft Scripting Runtime. Прежде чем создавать относящийся к файлам программный код, в VBA-проект нужно добавить ссылку на эту библиотеку. А перед тем, как сделать это, нужно убедиться в том, что соответствующая библиотека установлена на компьютере.

Библиотека Microsoft Scripting Runtime содержится в файле с именем SCRRUN.DLL, размещенном в папке Windows\System. Библиотека устанавливается автоматически при инсталляции Windows 98 или Windows NT с дополнением Option Pack, а также если в систему устанавливается VBA 6. Если вы работаете с VBA 5 в Windows 95 или если по каким-то другим причинам библиотеки Microsoft Scripting Runtime в вашей системе не оказалось, загрузите ее на свой компьютер с Web-страницы Microsoft для разработчиков (msdn.microsoft.com/scripting/).

Убедившись, что в вашей системе есть библиотека Microsoft Scripting Runtime, добавьте ссылку на нее в каждый из проектов, где предполагается ее использовать. Для этого выполните следующее.

1. Выберите проект в окне проводника проектов.

2. Выберите Tools1= References, чтобы открыть диалоговое окно References (Ссылки).

3. В списке диалогового окна найдите пункт Microsoft Scripting Runtime и установите флажок, соответствующий этому пункту.

4. Закройте диалоговое окно.

Трам-та-ра-рам-тарам! Все готово.

Эти действия нужно повторить для каждого проекта, работающего в библиотеке Microsoft

Scripting Runtime, независимо от используемой версии VBA (о внешних объектных библиотеках см. выше, в разделе "Доступ к объектам других приложений").

VBA-программы, использующие библиотеку Microsoft Scripting Runtime, можно поставлять отдельно только тем пользователям, у которых в системе установлен соответствующий файл . DLL. В противном случае вместе с программой нужно поставлять и файл . DLL (с инструкциями по его установке).

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

Вперед в прошлое 10

Ратманов Денис
10. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 10

Страж Кодекса. Книга V

Романов Илья Николаевич
5. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса. Книга V

Кодекс Охотника. Книга VI

Винокуров Юрий
6. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга VI

Лекарь Империи 8

Лиманский Александр
8. Лекарь Империи
Фантастика:
попаданцы
городское фэнтези
аниме
5.00
рейтинг книги
Лекарь Империи 8

Сильнейший Столп Империи. Книга 3

Ермоленков Алексей
3. Сильнейший Столп Империи
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Сильнейший Столп Империи. Книга 3

Наследник

Майерс Александр
3. Династия
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Наследник

Наследник старого рода

Шелег Дмитрий Витальевич
1. Живой лёд
Фантастика:
фэнтези
8.19
рейтинг книги
Наследник старого рода

Кодекс Охотника. Книга XXV

Винокуров Юрий
25. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
6.25
рейтинг книги
Кодекс Охотника. Книга XXV

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

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

Родословная. Том 1

Ткачев Андрей Юрьевич
1. Линия крови
Фантастика:
городское фэнтези
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Родословная. Том 1

Призыватель нулевого ранга

Дубов Дмитрий
1. Эпоха Гардара
Фантастика:
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Призыватель нулевого ранга

Я не князь. Книга XIII

Дрейк Сириус
13. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я не князь. Книга XIII

Analyste

Мелехов Андрей Михайлович
Аналитик
Фантастика:
социально-философская фантастика
юмористическая фантастика
6.57
рейтинг книги
Analyste

На границе империй. Том 10. Часть 8

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 8