Функции и процедуры для работы с каталогами

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

  • CurDir([<Диск>]) — если параметр не указан, то функция возвращает текущий рабочий каталог для текущего диска. Если в параметре указано название диска — то текущий рабочий каталог для этого диска. Пример:
Debug.Print CurDir()
' C:\Documents and Settings\unicross\Мои документы
Debug.Print CurDir("C")
' C:\Documents and Settings\unicross\Мои документы
Debug.Print CurDir("D") ' D:\VBA

Функция CurDir() возвращает значение типа Variant (String). Чтобы получить значение типа String следует использовать функцию CurDir$(), имеющую тот же самый формат. Пример:

Debug.Print CurDir$()
' C:\Documents and Settings\unicross\Мои документы
  • ChDir <Путь> — делает указанный каталог текущим. Обратите внимание на то, что текущий рабочий диск при этом не изменяется. Пример:
ChDir "D:\VBA"
Debug.Print CurDir$()
' C:\Documents and Settings\unicross\Мои документы
Debug.Print CurDir$("D") ' D:\VBA

Чтобы подняться на один каталог выше следует вместо пути указать две точки:

ChDir ".."
Debug.Print CurDir$()
' C:\Documents and Settings\unicross
  • ChDrive <Диск> — далает указанный диск текущим:
ChDrive "C"
Debug.Print CurDir$()
' C:\Documents and Settings\unicross\Мои документы
ChDrive "D"
Debug.Print CurDir$() ' D:\VBA
  • MkDir <Имя каталога> — создает новый каталог:
MkDir ThisWorkbook.Path & "\folder2\"
  • RmDir <Имя каталога> — удаляет пустой каталог. Если в каталоге есть файлы или указанный каталог не существует, то генерируется ошибка. Удалим каталог folder2:
RmDir ThisWorkbook.Path & "\folder2\"
  • Dir(<Путь>[, <Атрибуты>]) — позволяет получить названия всех файлов и каталогов, расположенных по указанному пути. Первый вызов функции возвращает название первого объекта. Чтобы получить названиях всех остальных следует вызывать функцию без параметров. Если объектов больше нет, то функция возвращает пустую строку. Путь может содержать спецсимволы ? (любой один символ) и * (любое количество любых символов). Во втором параметре можно указать какие объекты следует возвращать. В качестве значения указывается сумма следующих значений:
  • 0 — vbNormal — обычный файл (значение по умолчанию);
  • 1 — vbReadOnly — файл доступен только для чтения;
  • 2 — vbHidden — скрытый файл;
  • 4 — vbSystem — системный файл;
  • 16 — vbDirectory — путь указывает на каталог;
  • 32 — vbArchive — архивный файл;
  • 64 — vbAlias — имя файла является псевдонимом (используется только в Macintosh).

Функция Dir() возвращает значение типа Variant (String). Чтобы получить значение типа String следует использовать функцию Dir$(), имеющую тот же самый формат. Пример вывода названий всех файлов:

Dim s As String
Debug.Print Dir$(ThisWorkbook.Path & "\")
Do
   s = Dir$()
   Debug.Print s
Loop While s <> ""

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

Dim s As String
Debug.Print Dir$(ThisWorkbook.Path & "\", vbDirectory)
Do
   s = Dir$()
   Debug.Print s
Loop While s <> ""

Visual Basic for Applications (VBA)
Самоучитель по VBA

Помощь сайту

Yandex-деньги: 410011140483022

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

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