При обработке данных Excel файлов используя Python, бывают ситуации, когда необходимо запустить с помощью Python макрос VBA, написанный ранее в Excel. В этой статье мы разберемся как это сделать с применением библиотеки Xlwings.
Для нашего учебного примера давайте создадим Excel файл и в нем макрос:Sub SampleMacro()
MsgBox ("VBA макрос запущен при помощи Python")
End Sub
Сохраните Excel файл c поддержкой макросов под именем «vba_python.xlsm». Кстати, если вы позабыли, как создавать VBA макросы, то прочитайте нашу статью «Как удалить скрытые имена в Excel», в ней подробно мы разбирали этот вопрос.
Теперь запускаем Python и импортируем библиотеку Xlwings:
import xlwings as xwСледующим этапом открываем Excel файл, который создали ранее:
vba_book = xw.Book("vba_python.xlsm")Воспользуемся встроенным в Xlwings методом macro(), который как раз и предназначен для запуска VBA макросов. В качестве параметра в метод передается названия созданного ранее VBA макроса.:
vba_macro = vba_book.macro("SampleMacro")Теперь запускаем макрос:
vba_macro()Итого общий код нашего минипроекта выглядит следующим образом:
Выполнив этот код, мы получим следующий результат в Excel файле:
Отлично, все работает!Хотел бы обратить ваше внимание, что ваше знание Python и Excel очень поможет в освоении новой, перспективной и востребованной профессии «Data Scientist». Если хотите узнать об этом побольше, запишитесь на курс «Data Scientist с нуля до Junior» от Skillbox.
Спасибо за внимание, жду ваших вопросов в комментариях.
0 comments:
Отправить комментарий
Спасибо за комментарий.