Создание, копирование, перемещение и удаление папок в VBA Excel методами объекта FileSystemObject. Удаление папок с помощью оператора RmDir.
Создание папки (метод CreateFolder)
Синтаксис
1 |
object.CreateFolder (foldername) |
Параметр foldername
можно в скобки не заключать.
Параметры
Параметр | Описание |
---|---|
object | Переменная, возвращающая объект FileSystemObject. |
foldername | Строковое выражение, указывающее папку, которую необходимо создать. |
Если папка, указанная параметром foldername
уже существует, произойдет ошибка.
Копирование папки (метод CopyFolder)
Синтаксис
1 |
object.CopyFolder source, destination, [overwrite] |
Параметры
Параметр | Описание |
---|---|
object | Переменная, возвращающая объект FileSystemObject. |
source | Строковое выражение, указывающее папку, которую требуется скопировать в другое расположение. Для копирования нескольких папок используются подстановочные знаки. |
destination | Строковое выражение, задающее конечное расположение, куда требуется скопировать папку (папки) со всеми вложениями из элемента source. Подстановочные знаки не допускаются. |
overwrite | Логическое значение, которое указывает, требуется ли перезаписывать существующие папки и файлы в конечном расположении. True – папки и файлы будут перезаписаны, False – перезапись не выполняется. Необязательный параметр. По умолчанию – True. |
Перемещение папки (метод MoveFolder)
Синтаксис
1 |
object.MoveFolder (source, destination) |
Параметры
Параметр | Описание |
---|---|
object | Переменная, возвращающая объект FileSystemObject. |
source | Строковое выражение, указывающее папку, которую требуется переместить в другое расположение. Для перемещения нескольких папок используются подстановочные знаки. |
destination | Строковое выражение, задающее конечное расположение, куда требуется переместить папку (папки) со всеми вложениями из элемента source. Подстановочные знаки не допускаются. |
Удаление папки (метод DeleteFolder)
Синтаксис
1 |
object.DeleteFolder folderspec, [force] |
Параметры
Параметр | Описание |
---|---|
object | Переменная, возвращающая объект FileSystemObject. |
folderspec | Строковое выражение, указывающее папку, которую следует удалить. Для удаления нескольких папок используются подстановочные знаки. |
force | Значение типа Boolean: True – удаляются все папки, False (по умолчанию) – не удаляются папки с атрибутом «только для чтения» (необязательный параметр). |
Метод DeleteFolder
удаляет папки независимо от того, есть ли в них содержимое или нет.
Удаление папки (оператор RmDir)
Синтаксис
1 |
RmDir path |
- path – строковое выражение, определяющее каталог или папку, которую необходимо удалить.
Если удаляемый каталог или папка содержит файлы, произойдет ошибка.
Примеры
Пример 1
Создание папок в VBA Excel с помощью метода CreateFolder:
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub Primer1() Dim fso As Object, i As Integer 'Создаем новый экземпляр FileSystemObject Set fso = CreateObject("Scripting.FileSystemObject") 'Создаем несколько новых папок With fso .CreateFolder ("C:\Папка главная") For i = 1 To 5 .CreateFolder "C:\Папка главная\Папка " & i Next End With End Sub |
В результате работы этого кода на диске C
будет создана Папка главная
и в ней еще 5 папок, которые будем использовать для копирования, перемещения и удаления.
Пример 2
Копирование папок в VBA Excel с помощью метода CopyFolder:
1 2 3 4 5 6 7 8 9 |
Sub Primer2() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") 'Копируем папки With fso .CopyFolder "C:\Папка главная\Папка 2", "C:\Папка главная\Папка 1\" .CopyFolder "C:\Папка главная\Папка 3", "C:\Папка главная\Папка 1\Папка 2\" End With End Sub |
Код этого примера копирует папки следующим образом: Папка 2
в Папка 1
, а Папка 3
в расположение \Папка 1\Папка 2\
.
Пример 3
Перемещение папок в VBA Excel с помощью метода MoveFolder:
1 2 3 4 5 6 7 8 9 10 |
Sub Primer3() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") 'Перемещаем папки With fso .MoveFolder "C:\Папка главная\Папка 3", "C:\Папка главная\Папка 2\" .MoveFolder "C:\Папка главная\Папка 4", "C:\Папка главная\Папка 2\" .MoveFolder "C:\Папка главная\Папка 5", "C:\Папка главная\Папка 2\Папка 4\" End With End Sub |
Пример 4
Удаление папок в VBA Excel с помощью метода DeleteFolder:
1 2 3 4 5 6 7 8 9 |
Sub Primer4() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") 'Удаляем папки с содержимым With fso .DeleteFolder "C:\Папка главная\Папка 1" .DeleteFolder "C:\Папка главная\Папка 2" End With End Sub |
Пример 5
Удаление пустой папки в VBA Excel с помощью оператора RmDir:
1 2 3 4 |
Sub Primer5() 'Удаляем пустую папку RmDir "C:\Папка главная" End Sub |