エクセルVBA豆知識 ③指定した時間にマクロを実行 の続きです。
途中から読んでおられる方は、
エクセルVBA豆知識 ①ファイル名一覧の作成 から、読み直してください。
実例 2秒間隔で画像を変える。
先に、画像を変更するマクロ
Sub ボタン10_Click()
ActiveSheet.Calculate
Range("C3").Value = Range("A" & Range("C2").Value).Value
End Sub
を作成しました、このマクロを
Sub ボタン10_Click()
ActiveSheet.Calculate
Range("C3").Value = Range("A" & Range("C2").Value).Value
Range("C1").Value = Now + TimeValue("00:00:02")
Application.OnTime Range("C1").Value, "ボタン10_Click"
End Sub
に変更してクリックします。
2秒間隔で画像が変わればOKです。
Range("C3").Value = Range("A" & Range("C2").Value).Value を実行してChangeイベントが実行される。
画像が変わる。
Range("C1").Value = Now + TimeValue("00:00:02") C1セルに今の日時の2秒後の時間を入れる。
Application.OnTime Range("C1").Value, "ボタン10_Click"
C1の時刻(つまり今より2秒後)に、ボタン10_Click(自分を)実行する予約をします。
このファイルを閉じるまで、ず~と同じマクロ(ボタン10_Click)が実行されます。
この予約を解除する為に、策に作成した
Sub ボタン12_Click()
On Error Resume Next
Application.OnTime Range("C1").Value, "ボタン10ick", Schedule:=False
End Sub
を実行することで予約が解除されます(繰り返しが止まります)。
・Dir関数
・ActiveSheet.Pictures.Insert(FName)(画像の取り込み)
・Application.OnTimeコマンド
とちょっと風変わりな使い方を紹介しましたが、こんなことも出来るのだ!!と覚えておくと
何かの時に役に立つかもしれません。