• 締切済み

Excel VBA アニメーション表示について

for next文で座標を計算しながら、図を移動させたいのですが、 一回の計算ごとには図が動かず、ループ終了の座標にいきなり移動します。 計算ごとに位置を表示する方法をご教示お願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

全体の処理完了速度を上げるための常道コーディングの癖で、 参考 http://officetanaka.net/excel/vba/speed/s1.htm Application.ScreenUpdating = False 処理 Application.ScreenUpdating = True を入れているのではないですか。 そうでないなら、別の原因なので、補足すべきでしょう。

ken-nosuke
質問者

補足

ご回答ありがとうございます。 ご指摘のコードは使用していませんので別の原因と思われます。 今回のコードを回答1の補助コメントに記載しましたので、別の原因に心当たり有ればご教示お願いいたします。

回答No.1

Application.ScreenUpdating = False Application.ScreenUpdating = True ループごとに画面の更新をoff->onして強引に更新させるとか。

ken-nosuke
質問者

お礼

ありがとうございました。 別のサイトで答えが見つかりました。 ループごとに Doevents を入れれば、その都度表示されます。

ken-nosuke
質問者

補足

ご回答ありがとうございます。 下記プログラムを先に示せばよかったと反省です。 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

関連するQ&A