エクセルにウェイトタイマーを!

2017-08-09設計

困っていたことが解決した!のでメモ。

エクセルのグラフを使って機構解析をすることがある

グラフに表示するデータを 予め作成した表から次々に選択すると、
グラフが描き変わって動いたように見える、という手法なんだけど、
これがエクセルのバージョンによりテクニックが違う。

officeXPの時代は描画が非常に速かったので、画面の描画を意図的に増やす工夫が必要だった。

これが2013になると、グラフ描画が20倍位遅くなった為、上記の工夫が逆効果になった。

そこで、マクロで行の移動を行うようにすると、遅いなりに動いて見えるようになった。

そして、office2016になると・・・

更に遅くなり、上記マクロでも描画が追い付かなくなった!

ついに、Libre Office 並みになったかも!!!
(LibreOfficeでもちょっと挙動が違うけど動きます)
いくらオシャレに見せたいからといって馬鹿じゃないのか・・・パソコンは速度命・・・

で、しょうがないからマクロに描画待ちのウェイトを入れようと検索したら、
こんな素晴らしい情報が!!DreamDrive!!のみっちーさん ありがとうございます!

それまで見つかったのは1秒までだったんだなぁ。

Application.Wait [Now() + "0:00:00.5"]

で、0.5秒を設定できる! []で囲むだけなんて他に出てないぞ!

sleep関数は上手く設定できなくて、困ってた。

Application.ScreenUpdating = True
    Application.Wait [Now() + “0:00:00.2”]
    Application.ScreenUpdating = False
を新たにマクロのボタンの中に組み込むと、0.2秒間隔でグラフを描きなおす。

0.1秒にすると私のPCではコマ飛びする感じ。

なお、この順番じゃないと上手く描かなかった。よくわからん・・・

まぁ、これでもPCが忙しいとエラーが出るけど、

“終了”を押せば問題ないので良しとしよう。

設計

Posted by mmhトホホ