Скрипт для извлечение VBA макросов из документов Microsoft Excel

Данная статья служит документацией и предоставляет основные сведения о скрипте, такие как его назначение, инструкции по установке, использованию, настройке и другие важные детали.

Описание

extract_vba.py — это скрипт для извлечения VBA макросов из документов форматов .xls и .xlsm. Скрипт проходит по всем файлам из списка и извлекает макросы.

Извлечённые макросы сохраняются в папке results, расположенной в каталоге со скриптом. Для каждого обработанного документа создается отдельная папка с именем файла, из которого был извлечён макрос. Если папка с таким именем уже существует, к ней автоматически добавляется суффикс _+1.

В случае ошибки в процессе выполнения, скрипт сохраняет индекс документа в специальный файл progress.pkl. При следующем запуске скрипт автоматически продолжит обработку с этого места. Файл с индексом автоматически удаляется при успешном завершении работы скрипта.

Установка и настройка

Скрипт поддерживает работу как на Windows, так и на Linux. Рекомендуется использовать Python версии от 3.6 до 3.9.

Создание и активация виртуального окружения

Для изоляции зависимостей рекомендуется использовать виртуальное окружение. Для создания и активации виртуального окружения необходимо перейти в папку со скриптом и выполнить следующие команды:

На Windows:

Создание виртуального окружения: 
python3 -m venv env

Активация виртуального окружения: 
.\env\Scripts\activate

На Linux:

Создание виртуального окружения: 
python3 -m venv env

Активация виртуального окружения: 
source env/bin/activate


Установка зависимостей

После активации виртуального окружения требуется установить зависимости:

pip install --upgrade pip
pip install -r requirements.txt


Использование

Для получения справки по параметрам запуска:

python extract_vba.py -h

Скрипт принимает один обязательный аргумент:

--file FILE, -f FILE — Путь к текстовому файлу со списком документов.

Примеры использования

Извлечение макросов из списка документов:

python extract_vba.py -f docs.txt

Пример документа в docs.txt на Windows:

D:\docs\docs\1.xlsm

Пример документа в docs.txt на Linux:

/home/user/1.xlsm

Запуск скрипта через исполняемый файл extract_vba.exe

1. Откройте Command Prompt (cmd) или PowerShell.

2. Перейдите в каталог с файлом extract_vba.exe, используя команду:

cd <Путь к каталогу>

3. Выполните запуск скрипта с параметром:

.\extract_vba.exe -f <Путь до файла docs.txt>

Требования

  • Python 3.6 - 3.9
  • Необходимые библиотеки указаны в requirements.txt.

Release Notes

Версия

Описание

1.0.1

Доработана обработка ошибок: теперь ошибки выводятся в консоль и записываются в отдельный файл – error.log


Вложение

  • extract_vba_1.0.1.py - Скрипт
  • docs.txt - Пример файла со списком документов
  • requirements.txt - Необходимые библиотеки
  • extract_vba_1.0.1.exe - Исполняемый файл скрипта
Прикреплённые файлы
docs.txt
404kb
extract_vba_1.0.1.exe
404kb
extract_vba_1.0.1.py
404kb
requirements.txt
404kb