@Rbiginer (初心者 R)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

VBAの簡単な動きが見えない

Q&A

Closed

エクセルで貼り付けした図をちょっとだけアニメーションのように動かしたくて
Range("A1:B2")にPicture 1
Range("D1:E2")にPicture 2
がはめ込まれています。

マクロで
図(Picture 1)をクリックしたらPicture 1が他のセルに移動し、同時にPicture 2がPicture 1が元あったRange("A1")に動く

何秒か待って

Picture 1とPicture 2が元の位置に戻る

簡単なマクロなんですが、Range("A1")にある図が入れ替わったりするのが見えません。
どうもSleepで止まってるように見えません。

標準モジュールのVBAはこんな感じです。

qiita.rb
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
Sub 図のちょっとした動き()


    ActiveSheet.Shapes("Picture 1").Left = ActiveSheet.Range("G1").Left
    ActiveSheet.Shapes("Picture 1").Top = ActiveSheet.Range("G1").Top

    ActiveSheet.Shapes("Picture 2").Left = ActiveSheet.Range("A1").Left
    ActiveSheet.Shapes("Picture 2").Top = ActiveSheet.Range("A1").Top


        Sleep 5000


    ActiveSheet.Shapes("Picture 2").Left = ActiveSheet.Range("D1").Left
    ActiveSheet.Shapes("Picture 2").Top = ActiveSheet.Range("D1").Top

    ActiveSheet.Shapes("Picture 1").Left = ActiveSheet.Range("A1").Left
    ActiveSheet.Shapes("Picture 1").Top = ActiveSheet.Range("A1").Top

End Sub

どうにかうまく動いているようなマクロにならないですか?
初心者なので、変な質問ですみません。よろしくお願いいたします。

0 likes

1Answer

Sleep の箇所を以下のようにしたらいかがでしょうか?

    Application.ScreenUpdating = True
    DoEvents
    Sleep 5000
0Like

Your answer might help someone💌