- 締切済み
Excel VBA アニメーション表示について
for next文で座標を計算しながら、図を移動させたいのですが、 一回の計算ごとには図が動かず、ループ終了の座標にいきなり移動します。 計算ごとに位置を表示する方法をご教示お願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
全体の処理完了速度を上げるための常道コーディングの癖で、 参考 http://officetanaka.net/excel/vba/speed/s1.htm Application.ScreenUpdating = False 処理 Application.ScreenUpdating = True を入れているのではないですか。 そうでないなら、別の原因なので、補足すべきでしょう。
- neKo_quatre
- ベストアンサー率44% (735/1636)
Application.ScreenUpdating = False Application.ScreenUpdating = True ループごとに画面の更新をoff->onして強引に更新させるとか。
お礼
ありがとうございました。 別のサイトで答えが見つかりました。 ループごとに Doevents を入れれば、その都度表示されます。
補足
ご回答ありがとうございます。 下記プログラムを先に示せばよかったと反省です。 callの前後にFalse,Trueを入れても同じでした。 デバッグでループごとに止めると1回分ずつ移動しますが、止めないと、 ループ完了(Subルーチン終了)まで変化なく最後に10ループ分移動します。 Sub Macro2() For i = 1 To 10 Call Macro3 Next i End Sub Sub Macro3() ' a = ActiveSheet.Shapes.Range(Array("car1")).Left ActiveSheet.Shapes.Range(Array("car1")).Left = a + 10 For j = 1 To 10000000 Next j End Sub
補足
ご回答ありがとうございます。 ご指摘のコードは使用していませんので別の原因と思われます。 今回のコードを回答1の補助コメントに記載しましたので、別の原因に心当たり有ればご教示お願いいたします。