まとめスポンサーリンクグラフアニメーションをVBAで作成するVBAを走らせている間、基本的にExcelの画面は固まってしまいます。実行中に値が出力されたとしても、それがグラフに反映されるのはVBAの処理が全て終わってからになります。本記事では、VBAを走らせながら、リアルタイムで計算結果をグラフで表示することによって、グラフアニメーションを作成するためにはどうすればよいのかをまとめました。例題として、以下のような動画をVBAで作ることを目指します。http://shimaphoto03.com/wp-content/uploads/2018/01/バラ-1.mp4説明ストークなぁ、シママ、ちょっと遊びでな、正葉曲線って言うのを描いてみたんやがな。シママあら、かわいい♪四つ葉のクローバー♪ストークあぁ、それでな、このグラフができるところを動画に撮りたいっつーか・・・。曲線が伸びて最後に四つ葉ができるところを表現したいねん。シママあ~!グラフがヌルヌル伸びてくのを表現したいのね!!ストークせやせや!シママそうなるとね、アルゴリズム的にはB列からE列をグングン伸ばしていく感じになるのよね。どこまで伸ばしたい?ストーク100行でちょうどθが2πになるようになってるから、100行までやな。*/シママSelection.AutoFill・・・ってあるでしょ?これは、グラフを伸ばすときにこういう作業するでしょ?http://shimaphoto03.com/wp-content/uploads/2018/01/引き伸ばし.mp4ストークするする!これをダバーッ!!と伸ばしてグラフの概形描くたいね。シママSelection.AutoFill・・・の文はそれを自動化しているのよ。5)、即ちE4まで引き延ばされる。5)、即ちE103まで引き延ばされる。したら1刻みで100分割してθ=2πまで描けてるでしょ?ストークせやな。1ループ毎に引き延ばせたら、1ループごとにグラフができて、グラフがリアルタイム表示できそうなやぁ~シママやってみたら?http://shimaphoto03.com/wp-content/uploads/2018/01/失敗.mp4ストーク・・・できん。ゴメンね♪あのね、VBAのプログラム回している間はExcelの制御を完全にVBAに渡している状態になるの。時間のかかるマクロを回している間はExcelがフリーズしたみたいな感じになるのよね。シママそれで一旦制御をOSに返しますっていう命令を書かなきゃいけないの。これを入れてやってみなよ。制御がOSに返ったらグラフを描くことができるから。Events関数なのよ。あとは、飾りつけみたいにこうしたら、もうちょっとカッコがつくんじゃない?あ、あと、予めグラフの体裁は整えておかないとダメだよ。ストークああ、このグラフは散布図(平滑線)で以下の様にグラフの体裁を予め整えている。Events関数で一旦制御をOSに返す動作を行わなければなりません。“0:00:00.1”]などと書いて、アニメーションの速度を遅らせることができます。この文は、次の命令を行う前に0.1秒止まるという文です。コメントをキャンセルメールアドレスが公開されることはありません。