Инспектор файлов Excel на наличие скрытых листов - что это такое?
Периодически по работе приходится собирать и выгружать для разных внешних контрагентов большие перечни информации, в том числе Excel файлов. Примеры:
- подготовка материалов оценщику для проведения независимой оценки
- подготовка материалов по активам в случае проработки M&A проектов
Одна из примитивных задач - инспекция выгружаемых файлов Excel на предмет скрытых листов с избыточными данными. Задача проста, но может занять время:
- Если файлов много, то надо руками открыть и просмотреть каждый файл. Не всегда коллеги помнят про то, что не надо оставлять в файлах избыточную информацию.
- Если в 1 файле Excel много скрытых листов, то нет простого способа сделать несколько листов видимыми сразу. Приходится по очереди раскрывать каждый лист.
Поэтому некоторые время назад сделал мини-тулзу на VBA, которая позволяет инспектировать файлы Excel в полуавтоматческом режиме.
Так как точно знаю, что даже в компании, где работаю сейчас, это частый кейс, то решил выложить ее в публичный доступ. Возможно, она пригодится еще кому-нибудь.
Инструкция
- Скачать и сохранить у себя файл Excel по ссылке.
- Открыть сохраненный файл. При необходимости разрешить запуск макросов и, если окно сканера не запустится автоматически, запустить окно вручную.
- Указать корневую папку для сканирования. По умолчанию подставляется та папка, в которой находится файл с инспектором.
- Запустить сканирование. После того, как будут проверены все файлы Excel в корневой директории и поддиректориях, будет выведен список файлов со скрытыми листами, а также список файлов, которые не удалось открыть/просмотреть.
- Дальше можно выбрать файл в списке, открыть его, отобразить все скрытые листы в книгах.
- После окончания проверки и правки файлов, можно закрыть (уже без сохранения изменений) все книги Excel.
FAQ
Q: Там вирус?
A: Нет.
Q: Должны же быть вирусы?
A: Исходный текст макросов VBA не запаролен и открыт для изучения.
Q: Почему именно VBA, а не нормальный Python, который ты тоже знаешь?
A: В Python нет библиотеки, которая бы поддерживала работу как со старым (xls), так и с новым форматом (xlsm). Плюс, в VBA проще сделать базовый UI и организовать распространение программы.
Q: Почему нет функции …?
A: Правило 80/20 или пока не сталкивался. Если есть предложения, то добро пожаловать в комментарии.
Q: Это же какая-то очень простая штука? Каждый может сделать!
A: Да, для тех, кто знает VBA, это действительно просто. Предназначение программы - помочь неспециалистам в VBA решить конкретную прикладную задачу.
Прочее
Еще раз ссылка на скачивание.
Пока что это достаточно узкоспециализированная программа, нацеленная только на скрытые листы. В дальнейшем, может быть, будут добавлены проверки на другие кейсы. Например, поиск вставленных (embedded) файлов.
Если инструмент окажется вам полезным, то будут благодарен за фидбэк в комментариях. Если у вас есть свои наработки или вы знаете полезные инструменты, которыми готовы поделиться, будет также интересно узнать.