こんにちは、Ryoです。
VBAでデータを収集、処理しグラフ化の処理を行う場合に日毎や週毎に変動するものであれば、グラフを画像ファイルとして保存しておきたいこともあるかと思いますので、今回はその処理について書いてみたいと思います。
1.サンプルコード
指定したグラフを画像ファイルとして保存する場合は、Exportメソッドを使います。
オブジェクト.Export ”パス+ファイル名”
この様に記述しますので、以下に例を示します。
Sub sample1() 'JPEG形式 Worksheets("Sheet2").ChartObjects(1).Chart.Export _ ThisWorkbook.Path & "\サンプルグラフ画像.jpeg" 'GIF形式 Worksheets("Sheet2").ChartObjects(1).Chart.Export _ ThisWorkbook.Path & "\サンプルグラフ画像.gif" 'BMP形式 Worksheets("Sheet2").ChartObjects(1).Chart.Export _ ThisWorkbook.Path & "\サンプルグラフ画像.bmp" 'PNG形式 Worksheets("Sheet2").ChartObjects(1).Chart.Export _ ThisWorkbook.Path & "\サンプルグラフ画像.png" End Sub
例として.jpeg、.gif、.bmp、.pngをそれぞれ記述しています。
.tifと.icoについても試してみましたがエラーになりますので、サンプルの4通りから選定する形になるかと思います。
この処理を実行すると、このように画像ファイルとして保存されます。
4つあるのは、jpeg/gif/bmp/pngでそれぞれ保存した為です。
例ではPathプロパティを使って実行ファイルと同じ場所に保存していますが、違う場所を指定する場合には直接指定すればOKです。
Worksheets(“Sheet2”).ChartObjects(1).Chart.Export _
“C:\Users\user\Documents\サンプルグラフ画像.jpeg”
◆グラフ名を指定して画像化する場合
サンプルコードではChartObjects(1)と指定していますので、対象シート内の1つ目のグラフという形になり、処理したいシートにグラフが一つであれば問題ありません。
同一シート内に複数のグラフがあり、特定のグラフを指定して画像ファイルとして保存する場合は以下の様に指定します。
画像化する【サンプルグラフ】の名前は「出荷数量」としています。
この名前を直接指定しますので、記述としては(1)が(“出荷数量”)になるだけですね。
Sub sample2() Worksheets("Sheet2").ChartObjects("出荷数量").Chart.Export _ ThisWorkbook.Path & "\サンプルグラフ画像A.jpeg" End Sub
これを実行しても画像ファイルとして保存されます。
2.まとめ
グラフを画像ファイル化して保存するのは特に難しい記述も必要なく、オブジェクト.Export ”パス+ファイル名”と、これだけ覚えれば大丈夫です。
私が確認した限りではjpeg/gif/bmp/pngは問題なく保存出来ていますので、ほぼ困ることはないと思いますから、存分に画像化して数値データのみならずビジュアル化されたデータも有効に記録化していってくださいね。
以上、VBAでグラフを画像ファイル化して保存する方法についてでした!
今回の記事が何かの参考になれば幸いです。
グラフ作成に関連する記事としては、以下にまとめていますのでよろしければぜひ!
Ryo