RとExcelのプロジェクトで作業していますが、出力を印刷するには "xlsx"パッケージを使用しています。Rスクリプトを実行するVBAコード:Excelでの出力イメージの問題
"Model.R"と呼ばれるスクリプトによって分析が実行されます。 "Output.R"という2番目のスクリプトは、分析の出力(いくつかのグラフを含む)を生成します。
source("Output.R")
R Studioから両方のスクリプトを実行すると問題はなく、出力は正しいです。
は今、私はマクロのために、次のVBAコードを使用して、スクリプトを実行するために、Excel「インターフェース」を建て:
Sub Run_script()
Dim cmdLine As String
cmdLine="C:\\Program Files\\R\\R-3.3.1\\bin\\Rscript C:\\...\\Model.R"
shell cmdLine
End Sub
、今、すべてが正常に動作し、出力が正しく新しいExcelファイルに出力されます今ではすべてのチャートが何も入っていない空白のボックスであるという事実の一部です。
この問題を解決する方法を知っている人はいますか?たとえば、Excelからスクリプトを実行する別の方法かもしれません。
hist(P1,probability=FALSE,main = "",breaks = 20)
title("CE Anno -1")
dev.copy(png,filename="CE1.png");
dev.off()
ので、画像はPNGファイルとして保存されます。
は
EDITここ
がチャートの1を生産し、節約Rコードは一例として、あるありがとう同じ作業ディレクトリにあります。
outwb <- createWorkbook()
SummaryCE <- createSheet(outwb, sheetName = "Summary CE")
addPicture("CE1.png", SummaryCE, scale = 0.5, startRow = 11, startColumn = 1)
saveWorkbook(outwb, "Risultati RO.xlsx")
私が言ったように私はR Studioから、それを実行した場合、このコードは正常に動作します:次に、Excelでそれを印刷するために、私はのxlsxパッケージと、次のコードを使用します。以前のVBAコードを使用してコマンドラインから呼び出すと、Excelは正しく作成されますが、イメージは空白のボックスになります。あなたの助けに
EDIT 2
おかげで、私は正常に問題を解決しました。私が今しようとしているのは、同じスクリプトモデルに基づいてレポート(Word形式、ここではLaTexはありません)を自動的に生成することです。これは、Markdown機能を使用して、R Markdownファイル"Report.Rmd"。ここで私は基本的には、その後いくつかのテーブル、チャート、コメントを追加しModel.R実行
load("Mywork.RData")
から生じたワークスペースをロードします。次に、 "Model.R"スクリプトの次の行を使用してWord文書を作成します。
render("Report.Rmd")
また、以前と同様の問題があります。 R Studioからそれを実行すると、すべて正常です。以前のExcelインターフェイスを使用すると、Word出力はフォルダに表示されません。
誰でもこの問題の原因を知ることができますか?
ありがとうございました。いくつかの質問で申し訳ありませんが、私はRには満足ですが、VBAを初めて使用します。
あなたは*画像*、*グラフ*と*出力*を参照保つ –
VBAまたはコマンドラインでバックスラッシュをエスケープする必要はありませんが、我々は唯一のコマンドライン呼び出しは何も実行中のコードを参照してくださいません。あなたの完全なプロセスを見ることができるようにRコードを投稿できますか? Rスクリプトは、Excelがレンダリングするチャートイメージを生成しますか? – Parfait
グラフは別のウィンドウに描画され、Excelではシェルがキャプチャできません。ディスク上のRスクリプト内からpng/jpgにグラフを保存し、vbaスクリプトを使用してこれらの画像ファイルをExcelにロードしてみてください。 –