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

VBA Excel. Создание и распаковка ZIP-архива

    С помощью VBA Excel можно легко создавать ZIP-архивы и распаковывать их без сторонних программ. Примеры процедур, которые создают и распаковывают ZIP-архивы.

    Создание ZIP-архива

    Код процедуры VBA Excel, создающей ZIP-архив:

    Настройка

    1. Откройте VBA Editor (Alt + F11).
    2. Перейдите в Tools → References.
    3. Подключите библиотеку Microsoft Shell Controls And Automation.
    4. Замените пути на свои и протестируйте код.

    Примечания

    • Код может быть значительно короче, но данный код учитывает больше возможных ошибок.
    • Для объектов Shell используется ранняя привязка (для этого потребовалось подключить библиотеку Microsoft Shell Controls And Automation) — мне не удалось заставить его работать с поздней привязкой на своем компьютере.

    Распаковка ZIP-архива

    Код процедуры VBA Excel, распаковывающей ZIP-архив:

    Где использовать?

    Создание и распаковка ZIP-архивов средствами VBA Excel может быть полезным в различных автоматизированных сценариях, особенно когда требуется подготовка, передача или обработка файлов без участия стороннего ПО. Вот несколько практических случаев, когда эта возможность применяется:

    1. Архивация отчётов перед отправкой по электронной почте

    Если ваш макрос формирует отчёты или экспортирует данные (например, в PDF или CSV), вы можете автоматически поместить результат в ZIP-архив перед отправкой через Outlook или загрузкой на сервер. Это снижает размер файлов и упрощает пересылку.

    2. Распаковка входящих архивов

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

    3. Резервное копирование файлов

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

    5. Передача нескольких файлов как одного

    Если макрос генерирует несколько файлов (например, отчёты по отдельным объектам), упаковка их в ZIP позволяет удобно передать их в одном архиве, а не по отдельности.

    6. Автоматизация обмена с другими системами

    Некоторые внешние системы (например, API или корпоративные порталы) требуют приёма и передачи данных в формате ZIP. VBA может подготовить архив автоматически перед загрузкой.


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