2017-02-01 8 views
1

私は見回しましたが、Excelスプレッドシートから自動的にチャートを抽出する方法を見つけることができませんでした。 (私の選択ツールはRですが、代替案を検討したいと思います)R:MS Excelスプレッドシートからチャートを抽出するには?

誰でもやったことがありますか?

更新:Excel 2013を使用して作成したスプレッドシートがたくさんあり、すべてのグラフを画像(PNGなど)として抽出したいと思います。私はVBAを使用しても構いませんが、すべてのスプレッドシートを一度に実行すると、この演習の目的を破ってしまうので、コードを実行する必要があります。 ... VBAでこのような何かを試してみてください、あなたのチャートの全てが通常のワークシート(たとえばシート1、シート2)とないグラフシート(例えばグラフ1)中に埋め込まれていると仮定すると

+0

もっと具体的に教えてください。あなたはどのバージョンのExcelを入手できますか? VBAソリューションは問題ありませんか? – Roland

+0

質問が更新されました。 – Mikhail

+0

さて、私はVBAを使用します(私はこれらのグラフをExcelで作成しません)。チャートオブジェクトのエクスポートメソッドがあるので、これはあまり難しくありません。 VBAタグを追加することもできます。 – Roland

答えて

2

Sub exportAllCharts() 

Dim folder As String 
Dim filename As String 
Dim wb As Workbook 
Dim ws As Worksheet 
Dim cObj As ChartObject 

folder = "C:\" 'Make sure to have the trailing slash 
For Each wb In Application.Workbooks 
    For Each ws In wb.Worksheets 
    For Each cObj In ws.ChartObjects 
     filename = wb.Name & " " & ws.Name & " " & cObj.Name & ".png" 'Or whatever your code is to name your file... 
     cObj.Chart.Export folder & filename 
    Next cObj 
    Next ws 
Next wb 
End Sub 

私はそれをテストし、できます。これにより、開いているワークブック、すべてのワークシート、およびすべてのチャートオブジェクトをエクスポートする必要があります。

+0

クール、ありがとう! 私はすべてのスプレッドシートを開こうとしていますが、手作業ですべてのグラフを抽出することはまだ手作業ではありません。 – Mikhail

+0

あなたは大歓迎です!あなたはあなたのフォルダを繰り返し、ファイルを開いたり閉じることができます。 Dir()関数を見てください。次に、application.workbooks.openを使用します。 – Benjamin

関連する問題