私は PowerPoint でマクロを作成しました。このマクロは、そのプロセスの一部として、元の Excel グラフをコピーし、コピーしたグラフを OLE オブジェクトとして貼り付けることによって、PowerPoint プレゼンテーションのリンクされたグラフを埋め込みグラフに変換します。 「sldComponent.Shapes.PasteSpecial(ppPasteOLEObject)」です。
今日まで、これは 2003 年から 2010 年までのすべてのバージョンで正常に機能していました。ただし、2013/365 でこの関数を実行しようとすると、「指定されたデータ型は使用できません」という実行時エラーが発生し続けます (-2147188160 / 80048240)。また、Microsoft Developers Reference の Web ページで、"ppPasteOLEObject" が PasteSpecial メソッド (Shapes コレクションと共に使用する場合) で使用できるデータ型としてリストされていないことにも気付きました。
プログラムでグラフを画像として貼り付ける方法をいくつか見つけましたが、貼り付けたグラフをクリックしてデータにアクセスしようとすると、「リンクされたファイルは利用できません」というメッセージが表示され続けます。PowerPoint ユーザーが元の Excel ファイルを参照せずにデータを編集できるように、データを完全に自己完結型にしたいと考えています。興味深いことに、バグのある行で PowerPoint マクロを停止し、リボンの [貼り付け] を手動でクリックすると、コピーされたグラフが貼り付けられ、アクセス可能なデータが完全に埋め込まれ、アクティブなスライドに貼り付けられます。したがって、グラフはクリップボードにコピーされます。 ; 何らかの理由で、PowerPoint マクロが読み込んで貼り付けることができません。さらに興味深いことに (読み: 苛立たしいことに)、PasteSpecial(ppPasteOLEObject) コマンドはテーブルに対して機能します。Excel からコピーされたもの、つまりセル範囲ですが、チャート用ではありません。
どうしたの?PowerPoint 2013 で VBA コードを使用して、新しいバージョンの Excel グラフを埋め込む (つまり、すべてのデータを含む、以前に作成した自己完結型の Excel グラフをプレゼンテーション スライドに挿入する) 方法を教えてください。
追加: Excel でソース ワークシートからグラフを取得するために使用されるコマンドは、"xlCopySheet.ChartObjects(1).Select"、次に "appExcel.Selection.Copy" であることにも注意してください。選択した Copy 構文が、データを含むグラフ全体ではなく、表示のみをキャプチャしていることに問題がありますか? ここで使用する正しいコピー構文は何ですか?
追加 2: 詳細仕様: アプリ自体は 2013/Office 365 バージョンですが、元のマクロは保存され、Excel と PowerPoint の両方で互換性 (97-2003) モードで実行されていました。