У меня есть макрос, который я бы хотел использовать в составе существующих электронных таблиц. Единственная проблема заключается в том, что существует так много таблиц, что было бы слишком много времени для этого вручную!
Я написал Python script для доступа к необходимым файлам с помощью pyWin32, но я не могу понять, как использовать его для добавления макроса.
Аналогичный вопрос здесь дал этот ответ (это не Python, но похоже, что он все еще использует COM), но мой COM-объект, похоже, не имеет члена, называемого VBProject:
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.DisplayAlerts = False
Set objWorkbook = objExcel.Workbooks.Open("C:\scripts\test.xls")
Set xlmodule = objworkbook.VBProject.VBComponents.Add(1)
strCode = _
"sub test()" & vbCr & _
" msgbox ""Inside the macro"" " & vbCr & _
"end sub"
xlmodule.CodeModule.AddFromString strCode
objWorkbook.SaveAs "c:\scripts\test.xls"
objExcel.Quit
EDIT: ссылка на аналогичный вопрос: Внедрить и выполнить код Excel VBA в электронную таблицу, полученную из внешнего источника
Я также забыл упомянуть, что, хотя это не Python, я надеялся, что подобные объекты будут доступны мне через COM-объекты.