Ho una macro che mi piacerebbe utilizzare un mucchio di fogli di lavoro esistenti. L'unico problema è che ci sono così tanti fogli di calcolo che sarebbe troppo dispendioso in termini di tempo per farlo a mano!Utilizzare Python per iniettare macro in fogli di calcolo
ho scritto uno script Python per accedere ai file necessari utilizzando pyWin32, ma io non riesco a capire un modo di usarlo per aggiungere la macro in.
Una domanda simile qui ha dato questa risposta (non è Python, ma sembra che utilizza ancora COM), ma il mio oggetto COM non sembra avere un membro chiamato 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: link alla domanda simile si fa riferimento: Inject and execute Excel VBA code into spreadsheet received from external source
Ho anche dimenticato di menzionare questo anche se questo non è Python, speravo che membri di oggetti simili fossero disponibili per me tramite gli oggetti COM.
"Una domanda simile qui ha dato questa risposta" Un collegamento manca qui, non è vero? –
Bene, per iniziare, il codice di esempio non è nemmeno Python; Sono abbastanza sicuro che sia Visual Basic. –
Ho modificato la mia domanda! –