エクセルのVBAで、作成したグラフをパワーポイントに貼り付ける という作業をしています。 グラフは何ページかに渡りながら、全部で15個をコピペしています。
エクセルのVBAで、作成したグラフをパワーポイントに貼り付ける という作業をしています。 グラフは何ページかに渡りながら、全部で15個をコピペしています。 貼り付け方式は、パワーポイント上でもグラフを編集したいため、 図としてではなく、パワーポイントへの埋め込みで貼り付けています。 処理が全て完了する時もあれば、たまに途中で止まることもあり、 「shapes.pastespecial:無効な要求です。クリップボードに何も入っていないか、ここで貼り付けることができないデータが入っています。」 というエラーメッセージが出ます。 デバックを選択し、特に何も修正せず実行すると最後まで処理はされます。 この、途中で止まる現象を解消したいです。 当方、コピーはされているのに「クリップボードに何も入っていない」と出るので、グラフの容量が重くてコピー後の処理に時間がかかっているのではと考え、 Application.Wait Now() + TimeValue("00:00:01") と挿入し処理待ちの時間を入れてみました。 しかし、やはりたまに途中で止まってしまいます。 どなたか、途中で止まらな無い確度を高める アイディアをご教示いただけないでしょうか。 使用しているエクセル、パワーポイントはMicrosoft 365 ProPlusです。 記載しているコードはこちらです。 (処理するグラフの数の指定や、貼り付けるページ番号など、そういうコードは省いております) === Sub PPTへコピー() Application.ScreenUpdating Dim ppApp As Object Dim ppPst As Object Dim ppSld As Object Set ppApp = CreateObject("PowerPoint.Application") Set ppPst = ppApp.ActivePresentation Set ppSld = ppPst.Slides(SldNo) For n = 0 To PecNmb - 1 Sheets(ShtNam(n)).ChartObjects(GrpNmb(n)).Copy Application.Wait Now() + TimeValue("00:00:01") ppSld.Shapes.PasteSpecial DataType:=0 Application.CutCopyMode = False Next n End Sub === 何卒よろしくお願い致します。
Excel | Visual Basic・124閲覧・100
ベストアンサー
お礼が遅くなり申し訳ありませんでした。 まだ不具合が起きておりますが、 ひとまずクリップボードの履歴を全て削除するコードを入れて トライしてみております。
質問者からのお礼コメント
DoEventsでうまく行きました!ありがとうございます! https://social.msdn.microsoft.com/Forums/ja-JP/e590e461-0c18-4891-89e2-70281f8b0029/12463125221248312503125081254012489123631242512398paste1239512424?forum=vbajp
お礼日時:1/29 8:24