RスクリプトとVBA-code
を含むワークフローを管理する必要があります。プロセスをR(コードの大部分が存在する場所)で実行し、特定の計算のためにVBA-code
をときどき呼び出します。
RでVBAの入力を準備し、結果(.csv、データベース)のどこかに書き込み、その結果を残りのRスクリプトで使用します。
もちろん、コード全体をRに移動するのが最善ですが、現時点では不可能です。 VBA-code
はかなり複雑です。これをRに変換することは、長期的な課題です。
Rでこのようなワークフローを管理する可能性はありますか?
VBAを呼び出すVBscriptラッパーを記述します。参照 コマンドラインまたはバッチファイルからExcelマクロを実行する方法?
VBscriptラッパーを必要としないメソッドを次に示します。 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()