Автоматизация MS Excel без макросов в создаваемых отчетах. Какие-нибудь мысли?

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

Я понимаю, что есть VBA, но мне всегда не нравилось, когда программа / макрос находятся внутри файла Excel, с результирующим раздутием, предупреждениями безопасности и т. Д. Я думаю о том, как работает VBScript, который работает с набором файлов Excel, пока оставляя их без макросов. Теперь я смог "закрасить первый столбец синим цветом" для всех файлов в каталоге, следуя этому подходу, но мне нужно выполнять более сложные операции (диаграммы, сводные таблицы и т. Д.), Что было бы намного сложнее (невозможно?) с VBScript, чем с VBA.

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

Спасибо!

PS: Я с большим удовольствием попробовал замечательный пакет PyWin32 Марка Хаммонда, но отсутствие документации и отзывов переводчиков меня обескуражило.

3 ответа

Решение

Вы можете поместить свои макросы в отдельный файл Excel.

Почти все, что вы можете сделать в VBA для автоматизации Excel, вы можете сделать в VBScript (или любом другом скрипте / языке, который поддерживает COM).

Как только вы создали экземпляр Excel.Application, вы можете в значительной степени перетащить свой VBA в VBS и перейти оттуда.

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

Это дает вам свободу писать Excel/VBA.

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

Если вы хотите стать модным, вы даже можете использовать VBA в своем мастер-файле для создания / изменения / удаления пользовательских макросов / модулей VBA в любом целевом файле, который вы обрабатываете.

Информация практически обо всех описанных мною методах я получила из встроенных справочных документов Excel VBA, но она, безусловно, помогает ознакомиться с конкретными задачами программирования, которые вы решаете. Я бы посоветовал, что лучший подход - это собрать ваши задачи (например, сделать столбец синим, обновить / отсортировать данные и т. Д.) Одну за другой, а затем позаботиться об автоматизации в конце.

Другие вопросы по тегам