Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

VBA Excel. Удаление книги из собственного кода

    Удаление рабочей книги Excel из собственного кода VBA. Удаление объекта ThisWorkbook с помощью кода VBA Excel, размещенного в нем же.

    Удаление книги из собственного кода

    Удаление книги Excel из собственного кода VBA может использоваться для удаления данных, ставших неактуальными при наступлении определенной даты, или же для удаления демо-версий файлов Excel с кодом VBA, предоставляемых для ознакомления заказчикам.

    Удаление объекта ThisWorkbook из кода VBA Excel можно организовать с помощью оператора Kill, используя события Workbook_Open(), Workbook_Activate(), Workbook_Deactivate() и другие.

    Удаление ThisWorkbook из кода VBA

    Пример 1

    Удаление книги Excel из собственного кода VBA с помощью оператора Kill при открытии файла с привязкой к определенной дате:

    * Если не перевести книгу в режим «Только чтение», то выполнение оператора Kill приведет к ошибке.
    ** Если книгу не закрыть, то открытый экземпляр можно будет вручную пересохранить с новым именем.

    Пример 2

    Удаление объекта ThisWorkbook из кода VBA Excel, размещенного в нем же, с помощью метода DeleteFile объекта FileSystemObject:

    Результат выполнения кода будет таким же, как и при выполнении кода из первого примера.

    После выполнения любой из этих процедур по удалению рабочей книги из собственного кода VBA останется открытым только «пустой» экземпляр приложения Excel, если, конечно, не было других открытых книг.

    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

    2 комментария для “VBA Excel. Удаление книги из собственного кода”

    1. Удаление через Kill вываливается с сообщением о том, что путь к файлу не найден. И застревает на инструкции Kill. Как все-таки преодолеть эту проблему?

      1. Евгений

        Сергей, я проверил работоспособность кода с оператором Kill, у меня все работает — книга удаляется (Excel 2016).

    Обсуждение закрыто.