r vba workflow

Ejecutar script VBA desde R



workflow (2)

  1. Escribe un contenedor de VBscript que llame a tu VBA. ¿Ver la forma de ejecutar macros de Excel desde la línea de comandos o el archivo por lotes?

  2. Ejecute su VBscript a través del system de R o funciones de shell .

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()