1

パフォーマンスに問題があり、Googleは役に立ちません。この人も同じ問題を抱えています:http: //excel.bigresource.com/Copy-Chart-Print-Very-Slow-1eeSa883.html

VBAでExcelチャートをコピーするとき:これはとても遅いです。

  Dim myChart As ChartObject
    For Each myChart In consoPDC.ChartObjects
        myChart.Copy
        ...
    Next

それを速くするアイデアはありますか?詳細については、目的はそれらをパワーポイントに貼り付けることです。

奇妙なことに、手動で作成するのはまったく遅くありません

ありがとう。ニコ。

4

1 に答える 1

2

PowerPointにコピーを作成しているので、次のコードを試してみることをお勧めします。

myChart.CopyPicture Appearance:=xlScreen, Format:=xlBitmap

これはMS-Helpとここで見つかりました

また、ここで良いヒントを見つけました、によると、次のコードはより速いはずです

myChart.ChartArea.Copy

小規模なデモでのTestetは、大規模な結果について聞いて興奮しています:)これを試してみると、数秒で比較できると便利です。

編集:注意すべきもう1つのこと-メモリリーク

クリップボードに大量にコピーする場合は、後でクリーンアップするように注意する必要があります。そうしないと、メモリが非常に速くいっぱいになる可能性があります;)多くのシステムがデータをページファイルに移動してアクセス速度を低下させる可能性があるため、パフォーマンスが低下する可能性もあります。

編集:あなたが秒の最後のビットに入る必要があり、コピーするチャートがたくさんある場合だけ

使用For eachは、きちんとしたループでオブジェクトを反復処理するよりも遅くなります。ただし、コードはを使用するようにきれいに見えませんfor eachが、秒/ミリ秒がカウントされる場合は、それらを相互に比較する必要があります。

私はこれをMichealSchwimmerの専門書で見つけ、テストして驚いた。どのような状況であるかはもうわかりませんが、より大規模にテストして確認しました。

于 2012-09-07T08:55:59.650 に答える