Ejecutar script VBA desde R
workflow (2)
Tengo que administrar un flujo de trabajo que involucre R-scripts y VBA-code
. Me gustaría ejecutar el proceso en R (donde está la mayor parte de mi código) y, de vez en cuando, llamar VBA-code
para un cálculo específico.
Prepararía las entradas para VBA en R, escribiría en algún lugar los resultados (.csv, base de datos) y luego usaría los resultados en el resto del R-script.
Lo mejor sería, por supuesto, mover todo el código a R, pero esto por ahora no es posible. El VBA-code
es bastante complejo. Traducir esto a R será una tarea desafiante a largo plazo.
¿Existe alguna posibilidad de gestionar en R tal flujo de trabajo?
Aquí hay un método que no requiere un envoltorio VBscript. Tendrá que instalar el paquete RDCOMClient
library(RDCOMClient)
# Open a specific workbook in Excel:
xlApp <- COMCreate("Excel.Application")
xlWbk <- xlApp$Workbooks()$Open("C://Temp//macro_template.xlsm")
# this line of code might be necessary if you want to see your spreadsheet:
xlApp[[''Visible'']] <- TRUE
# Run the macro called "MyMacro":
xlApp$Run("MyMacro")
# Close the workbook and quit the app:
xlWbk$Close(FALSE)
xlApp$Quit()
# Release resources:
rm(xlWbk, xlApp)
gc()