Excel VBAでリンクされた図を正しく画像として保存する方法

Visual Basic

Excelで複数のシートからリンクされた図を集め、シート3に貼り付けた後に画像として保存する際、白くなってしまう問題はよくあります。本記事では、VBAを用いてリンクされた図を正しく画像として保存する手順と注意点を解説します。

リンクされた図とコピーの問題

リンクされた図は通常、元のデータが参照される形式です。そのままコピーして画像として保存しようとすると、表示が正しく反映されず白くなることがあります。

例えば、シート1とシート2の図を貼り付けただけでは、図のリンク先がないため保存時に内容が表示されないことがあります。

VBAでの正しいコピー方法

リンクされた図を画像として保存するには、まず図を一度コピーしてChartObjectShapeに貼り付け、Exportメソッドで画像ファイルに書き出す方法が有効です。

具体例として、以下のようにVBAで処理します。図を選択してコピーし、新しい一時シートに貼り付け、PNG形式で保存することができます。

サンプルVBAコード

Sub SaveLinkedShapesAsImage()
Dim sh As Shape
For Each sh In Worksheets("Sheet3").Shapes
sh.Copy
Dim ws As Worksheet
Set ws = Worksheets.Add
ws.Paste
ws.Shapes(1).Export "C:\Temp\image1.png", ppShapeFormatPNG
Application.DisplayAlerts = False
ws.Delete
Next sh
End Sub

この方法により、リンク元の図を反映したまま正しく画像として保存できます。

注意点と運用方法

この手法では、毎日変わるシート1・シート2の図に対応可能ですが、保存先フォルダやファイル名を動的に設定するとさらに便利です。

例えば、日付をファイル名に加えることで、毎日の画像保存が自動化されます。

まとめ

Excelでリンクされた図を正しく画像として保存するには、VBAでコピーして一時シートに貼り付け、Exportメソッドで画像化する手順が効果的です。この方法を使うことで、白くなる問題を回避し、毎日変わる図でも効率的に画像を保存できます。

コメント

タイトルとURLをコピーしました