Метод DeleteFile
Синтаксис метода DeleteFile состоит из следующих частей:
| Part | Описание |
|---|---|
| object | Обязательно. Всегда имя FileSystemObject. |
| filespec | Обязательно. Имя удаляемого файла. filespec может содержать подстановочные знаки в последнем компоненте пути. |
| force | Необязательный элемент. Значение типа Boolean: True, если должны быть удалены файлы с атрибутом "только для чтения", и False (по умолчанию), если эти файлы не следует удалять. |
Примечания
Если соответствующие файлы не найдены, возникает ошибка. Метод DeleteFile останавливается при первой обнаруженной ошибке. Попытка отката или отмены изменений, выполненных до появления ошибки, не выполняется.
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Deleting a file in VBA
I’ll leave it to you to figure out the various error handling needed but these are among the error handling things I’d be considering:
- Check for an empty string being passed.
- Check for a string containing characters illegal in a file name/path
2.) How To Delete a File. Look at this. Basically use the Kill command but you need to allow for the possibility of a file being read-only. Here’s a function for you:
Again, I’ll leave the error handling to you and again these are the things I’d consider:
Should this behave differently for a directory vs. a file? Should a user have to explicitly have to indicate they want to delete a directory?
Do you want the code to automatically reset the read-only attribute or should the user be given some sort of indication that the read-only attribute is set?
EDIT: Marking this answer as community wiki so anyone can modify it if need be.
Удаление файлов с помощью VBA в Excel
Добрый день, уважаемые читатели блога! Как водится, сегодня мы поговорим о программе Excel, но в не совсем привычной для нас функции — файловом менеджере. Постараюсь ответить на вопрос — может ли Excel с помощью макросов удалять файлы?
Ответ однозначный — да. Для этого в языке VBA есть специальный оператор — kill. Для нас он и представляет определённый интерес.
Давайте посмотрим как его можно использовать. Имеется папка (в моём примере это C:\Для всех), её нужно очистить от файлов с расширением *.xlsx.

Создадим новую книгу и, как обычно, добавим в неё стандартный модуль. Мы рассматривали этот алгоритм в предыдущих статьях.
- вкладка «Разработчик», кнопка «Visual basic»;
- вставляем новый модуль и помещаем следующий код макроса.
Sub DF()
‘ Удаление всех файлов из папки с расширением .xlsx
Kill «C:\Для всех\» & «*.xlsx»
End Sub

Будьте внимательны — макрос не удаляет файлы в «Корзину», а полностью стирает их с жёсткого диска компьютера!
Аналогично сочетанию клавиш Shift+Delete.
Проверим работоспособность нашего кода. Запустим окно выбора макросов комбинацией клавиш Alt+F8 и нажмём «Выполнить».

Результат на лицо — в папке остался только один файл «Изменение листа.xlsm» потому что у него разрешение не совпадает с указанным в макросе.
Также хочется отметить, что привычное сочетание клавиш Ctrl+Z не поможет восстановить файлы.

Необходимая оговорка — макрос можно использовать для всех типов файлов. Для этого необходимо изменить в макросе расширение *.xlsx на нужное для удаления вам.