質問: ・このプログラム実行後のクリップボードをペイントに貼り付けてみたところ、表を画像化したものを貼り付けることができた。→**「2選択した範囲を画像形式でコピー」は出来ている** ・プログラム内の「6埋め込みグラフを削除」を消して実行したところ、エクセルファイル内に真っ白なグラフ領域が現れた。→**「3のグラフ領域作成」まではできている。かつ、4のグラフへの貼り付けが正常に行われていない。** ・`cht.Paste`を`ActiveSheet.Paste`に変更したところ、シート内に表の画像が作成できた。→ChartのPasteの時のみ起こる問題? 以上の事から問題は`cht.Paste`の部分にあると考えて調べたのですが、これといった解決策が見つかりませんでした。 この問題の解決策をご教授いただけると助かります。
回答: 上記リンク先で、タイミングの問題とあり、ステップ実行したら正常に動作しました。リンク先にparent shapeをSelectしたら解決したとあったので、そのようにプログラムを修正したところ正常に動作しました。 ``` Sub outputPicture() Dim rg As Range Dim cht As Chart Dim path As String path = ThisWorkbook.path & "\" & ActiveSheet.Name & ".png" '1選択範囲を取得 Set rg = Range(Cells(1, 1), Cells(Range("G5").End(xlDown).Row, Range("G5").End(xlToRight).Column)) '2選択した範囲を画像形式でコピー rg.CopyPicture appearance:=xlScreen, Format:=xlPicture '3画像貼り付けようの埋め込みグラフ作成 Set cht = ActiveSheet.ChartObjects.Add(0, 0, rg.Width, rg.Height).Chart '★★★これを追加★★★ cht.Parent.Select '4埋め込みグラフに貼り付ける cht.Paste '5JPEG形式で保存 cht.Export Filename:=path, filtername:="PNG" '6埋め込みグラフを削除 cht.Parent.Delete MsgBox ("同フォルダ内に画像ファイル(" & ActiveSheet.Name & ".png)を出力しました") End Sub ``` 根本原因はわかりませんでしたが(Excel2016のバグ?)、一応動作したのでこれで解決とします。