Функции VBA, предназначенные для управления файлами, приведены в табл. 27.1.Большинство из этих функций не требует дополнительных пояснений; все они описаны в справочной системе Excel. Таблица 27.1 . Функции VBA, предназначенные для управления файлами
Функция | Назначение |
ChDir | Изменяет текущую папку |
ChDrive | Изменяет текущий диск |
D ir | Возвращает имя файла или папки, которое соответствует определенному шаблону или атрибуту файла |
FileCopy | Копирует файл |
FileDateTime | Возвращает дату и время последнего изменения файла |
FileLen | Возвращает размер файла (в байтах) |
GetAttr | Возвращает значение, которое представляет атрибут файла |
Kill | Удаляет файл |
MkDir | Создает новую папку |
Name | Переименовывает файл или папку |
RmDir | Удаляет пустую папку |
SetAttr | Изменяет атрибут файла |
Определение факта существования файла
Представленная ниже функция возвращает значение True, если определенный файл существует. Если файл не существует, функция возвращает значение False . Когда функция Dir возвращает пустую строку, то файл невозможно найти. В этом случае возвращается значение False.
Function FileExits ( fname) As Boolean
FileExits = Dir(fn am e )
End Function
Аргумент функции FileExists состоит из полного пути и имени файла. Функция может использоваться на рабочем листе, а также вызываться из кода VBA.
Определение факта существования пути
Следующая функция возвращает значение True, если указанный путь существует. В противном случае функция возвращает значение False.
Function FileExits ( pname) As Boolean
‘Возвращает TRUE, если путь существует
On Error Resume Next
PathExits = (GetAttr(pname) and vbDirectory)= vbDirectory
End Function
Использование объекта FileSystemObject
Объект FileSystemObject определен в библиотеке Windows Scripting Host и предоставляет доступ к файловой системе компьютера. Этот объект часто применяется в ориентированных на использование сценариев веб-приложениях (например, использующих код VBScript или JavaScript) и поддерживается в Excel 2000 и более поздних версиях программы.
Имя FileSystemObject может ввести в заблуждение, поскольку этот объект на самом деле состоит из нескольких объектов, каждый из которых выполняет свои функции.
• Диск (Drive). Представляет диск или коллекцию дисков.
• Файл (File). Представляет файл или коллекцию файлов.
• Папка (Folder). Представляет папку или коллекцию папок.
• Текстовый поток (TextStream). Представляет поток текста, который считывается,
записывается или добавляется в текстовый файл.
Пример использования на основе материала книги Джона Уокенбаха. Файл 02_Управлениефайлами_с_помощью_VBA_FileSystemObject.xls