Функции и процедуры для манипулирования файлами

Для манипулирования файлами предназначены следующие функции и процедуры:

  • FreeFile() — возвращает свободный дескриптор, который можно использовать при открытии файла;
  • FileAttr(<Дескриптор>) — позволяет определить в каком режиме был открыт файл с указанным дескриптором. Возвращает следующие значения:
  • 1 — режим Input;
  • 2 — режим Output;
  • 4 — режим Random;
  • 8 — режим Append;
  • 32 — режим Binary;
  • FileLen(<Путь к файлу>) — возвращает размер файла в байтах:
Debug.Print FileLen(ThisWorkbook.Path & "\test.txt")

Если файл открыт, то можно воспользовать функцией LOF(<Дескриптор>);

  • LOF(<Дескриптор>) — возвращает длину файла в байтах.
  • FileDateTime(<Путь к файлу>) — возвращает дату и время создания или последнего изменения файла:
Debug.Print FileDateTime(ThisWorkbook.Path & "\test.txt")
' 06.10.2012 20:05:23
  • GetAttr(<Путь>) — позволяет определить какие атрибуты установлены для файла или каталога. Возвращает сумму следующих значений:
  • 0 — vbNormal — обычный файл;
  • 1 — vbReadOnly — файл доступен только для чтения;
  • 2 — vbHidden — скрытый файл;
  • 4 — vbSystem — системный файл;
  • 16 — vbDirectory — путь указывает на каталог;
  • 32 — vbArchive — архивный файл;
  • 64 — vbAlias — имя файла является псевдонимом (используется только в Macintosh).

Проверить, установлен атрибут или нет, позволяет оператор And. Если атрибут установлен, то результатом операции будет ненулевое значение:

Dim attr
attr = GetAttr(ThisWorkbook.Path & "\test.txt")
If (attr And vbReadOnly) <> 0 Then
   Debug.Print "Файл доступен только для чтения"
End If
  • SetAttr <Путь>, <Атрибуты> — позволяет установить значения атрибутов. В параметре <Атрибуты> указывается сумма значений констант vbNormal, vbReadOnly, vbHidden, vbSystem, vbArchive и vbAlias. Пример:
SetAttr ThisWorkbook.Path & "\test.txt", vbReadOnly + vbHidden
  • Name <Старый путь> As <Новый путь> — позволяет переименовать или переместить файл или каталог. Если исходный файл отсутствует или новое имя файла уже существует, то генерируется ошибка. Пример переименования файла:
Name ThisWorkbook.Path & "\test.txt" As _
     ThisWorkbook.Path & "\tests.txt"

Пример перемещения файла в другой каталог:

Name ThisWorkbook.Path & "\tests.txt" As _
     ThisWorkbook.Path & "\folder1\tests.txt"
  • FileCopy <Копируемый файл>, <Куда копируем> — позволяет скопировать содержимое файла в другой файл. Пример:
FileCopy ThisWorkbook.Path & "\test2.txt", _
         ThisWorkbook.Path & "\folder1\test2.txt"
  • Kill <Путь к файлу> — позволяет удалить файл. Путь может содержать спецсимволы ? (любой один символ) и * (любое количество любых символов). Пример удаления одного файла:
Kill ThisWorkbook.Path & "\test2.txt"

Пример удаления всех текстовых файлов в указанном каталоге:

Kill ThisWorkbook.Path & "\folder1\*.txt"

Visual Basic for Applications (VBA)
Статьи по Visual Basic for Applications (VBA)

Помощь сайту

Yandex-деньги: 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

Поиск по сайту в Яндексе