ここから本文です

エクセルのグラフ(チャート)の再表示を早くする方法について質問させていただきま...

yum********さん

2016/6/2922:24:09

エクセルのグラフ(チャート)の再表示を早くする方法について質問させていただきます。

エクセルでシートのデータを使って複数のグラフを作成してある状態から、VBAでデータを再計算した時に、グラフが再表示されるまで、感覚で0.5秒ほど間があるのを、もっと早くできないでしょうか?

VBAでは、はじめに画面のアップデートは止めています。ほとんどのセルは計算式は入っていません。計算そのものは瞬間的に終わっていて、計算終了後、画面のアップデートをオンにしています。その後、間が空いてグラフが再表示されます。
画面のアップデートを止めなくても結果は変わりませんでした。
シート内のデータは20列100行程度の数値です。
グラフは折れ線グラフで、グラフ化しているデータいろいろですが、ひとつのグラフは5列30行程を対象にしています。

VBAでこのデータのほぼすべてを再計算して書き込み直します。そこまでは早いのですが、グラフが書き変わるのに一瞬時間がかかっているのを、早くしたいのです。

よろしくお願いします。

閲覧数:
404
回答数:
1

違反報告

ベストアンサーに選ばれた回答

som********さん

2016/6/3008:09:38

ChartオブジェクトにRefreshメソッドがあります。

※ヘルプではRefreshメソッドの説明に「指定されたグラフを直ちに再描画します。」とあります。

これでも早くならなければ、データとグラフを分けるなど、作り方を変えないとダメかも。

  • 質問者

    yum********さん

    2016/6/3013:30:35

    とてもすっきり動くようになりました!
    本当にありがとうございます!!

    1ヶ月ほど前にグラフに表示するデータ数を増やしたところ、とても「もっさり」動くようになってしまい、あれこれと試しても、上手く行かずに困っていました。


    教えていただいてやったことは、

    とりあえず、ChartオブジェクトのRefreshメソッドを入れました。
    すると少し早くなりました。これはいけそうと感じました。

    コードの順などを試行錯誤し、最後のスクリーンアップデートを
    なくすととてもスムーズに動くようになりました。


    '元のコード
    Application.ScreenUpdating = False
    データの計算
    結果のシート書き込み
    結果シート.select
    Application.ScreenUpdating = True



    '修正後
    Application.ScreenUpdating = False
    データの計算
    結果のシート書き込み
    結果シート.select
    ActiveSheet.ChartObjects("グラフ 1").Activate
    ActiveChart.Refresh

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる