none
表示更新の関数を同時に行うと徐々に処理が重くなる。 RRS feed

  • 質問

  • 以下のようなVBA処理フローをExcel2013上で行うと、For文の9300回ぐらいで、画面更新されず、画面がフリーズ状態になります。

    この処理フローは、他のExcelバージョンでは起きなかったので、Excel2013固有の問題なのでしょうか?

    ちなみにDrawDatalist関数内のApplication.ScreenUpdating を削除するとフリーズは起きず、問題は起きません。

    Doeventsを行っているにも関わらず、 Application.ScreenUpdatingを行っていることが問題になるのでしょうか?

     

     

    ●メイン関数

     

    関数()

     

     For i = 0 To 1000000

     

      Doevents

     

      DrawDatalist ←以下で説明

     Next i

     

    End Function

     

     

    ●DrawDatalist関数(データを描画する関数)

     

    DrawDatalist()

     

     Application.ScreenUpdating = False

     

     plotdata ←セルにデータを出力する処理

     

     Application.ScreenUpdating = True

     

    End Function

     

    2013年5月17日 6:24