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

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

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

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

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

Библиотека Microsoft Scripting Runtime содержится в файле с именем SCRRUN.DLL, размещенном в папке WindowsSystem. Библиотека устанавливается автоматически при инсталляции 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 (с инструкциями по его установке).

Доступ к файлам

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

1. Создание FileSystemObject - объекта высшего уровня, обеспечивающего доступ к файлам на диске.

2. Вызов подходящего метода объекта FileSystemObject для открытия нужного файла или для создания нового файла для использования.

3. Работа с файловым объектом с помощью его методов и свойств.

Практическая реализация этих действий иллюстрируется следующим фрагментом программного кода. В нем сначала создается объект File для файла lacewings.txt, а затем этот файл копируется в другое место на диске:

Dim objFileSystem As FileSystemObject

Dim objTextStreaml As File

Set objFileSystem = _

CreateObject("Scripting.FileSystemObject")

Set objFilel = _

objFileSystem.GetFile("C:ugslacewings.txt")

objFilel.Copy ("C:Мои документыuggy.txt")

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

Имея для работы объект File, несложно получить доступ к содержащейся в файле информации с помощью свойств объекта. Например, с помощью свойства Size можно выяснить размер файла

Dim l ngFileSize As Long

ingFileSize = objFilel.Size

или с помощью свойства DateLastModified узнать, когда файл изменялся последний раз:

Dim dateFileDate As Date

dateFileDate = objFilel.DateLastModified

Копирование, изменение и удаление файлов

С помощью подходящих методов объект File можно скопировать, переместить или удалить:

objFilel.Сору "с:героические усилия"

objFilel.Move "с:минимальные результаты"

objFile l.Delete

Заметьте, что если вы не меняете имя файла, в операторах, использующих методы Сору и Move, нет необходимости указывать имя, а нужно указать только путь назначения. (Не забудьте в конце имени пути добавить обратную косую черту.) И кстати, объект File сохраняет ассоциацию с перемещенным файлом.

Чтобы копировать, перемещать или удалять группы файлов, используйте методы CopyFile, MoveFile и Delete File объекта FileSystemObject, а не индивидуальный объект File. В спецификациях имен файлов для методов объекта FileSys t emObject можно использовать символы подстановки. Объект File SystemObject имеет еще методы CopyFolder, MoveFolder и DeleteFolder, которые применимы к папкам вместе с вложенными в них структурами.

Чтение и запись данных

Вы читаете VBA для чайников
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату