Ejecute el script de VBA desde R

Tengo que gestionar un flujo de trabajo que implique 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 alguna parte los resultados (.csv, base de datos) y luego usaría los resultados en el rest 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 en R será una tarea desafiante a largo plazo.

¿Hay alguna posibilidad de gestionar en R tal flujo de trabajo?

  1. Escriba un contenedor VBscript que llame a su VBA. Consulte 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 shell funciones del shell .

Aquí hay un método que no requiere un contenedor VBscript. Deberá 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()