Как в vba excel удалить файл
Перейти к содержимому

Как в vba excel удалить файл

Метод 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.

Удаление файлов с помощью VBA в Excel

Создадим новую книгу и, как обычно, добавим в неё стандартный модуль. Мы рассматривали этот алгоритм в предыдущих статьях.

  • вкладка «Разработчик», кнопка «Visual basic»;
  • вставляем новый модуль и помещаем следующий код макроса.

Sub DF()
‘ Удаление всех файлов из папки с расширением .xlsx
Kill «C:\Для всех\» & «*.xlsx»
End Sub

Удаление файлов с помощью VBA в Excel

Будьте внимательны — макрос не удаляет файлы в «Корзину», а полностью стирает их с жёсткого диска компьютера!

Аналогично сочетанию клавиш Shift+Delete.

Проверим работоспособность нашего кода. Запустим окно выбора макросов комбинацией клавиш Alt+F8 и нажмём «Выполнить».

Удаление файлов с помощью VBA в Excel

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

Также хочется отметить, что привычное сочетание клавиш Ctrl+Z не поможет восстановить файлы.

Удаление файлов с помощью VBA в Excel

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *