アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルのVBAでインターバルタイマーによる定期的なマクロの起動を考えていますが、エクセルにはそのようなコマンドが見当たりません。
ループ処理をしても実現は可能だと思いますが、CPUの独占状態となると思うのですが、Accessのタイマー割り込みみたいなのってエクセルでは実現できないのでしょうか?よろしくお願いいたします

A 回答 (2件)

Sub 指定時刻にマクロを実行する()


指定時刻 = TimeValue("HH:MM:SS") '指定時刻 ※1
待ち時間 = TimeValue("HH:MM:SS") '指定時刻に他プロシージャが実行中の場合の待ち時間 ※2
Application.OnTime TimeValue(指定時刻), _
"指定時刻に実行するマクロ名", _
TimeValue(待ち時間)
End Sub
Sub 指定時刻に実行するマクロ名()
' 'ここへマクロを記入
End Sub
'---------------------------------------------------------------

Sub 現在より一定時間後にマクロを実行する()
指定時刻 = Now + TimeValue("HH:MM:SS") '現在時刻より何分後 ※2
待ち時間 = TimeValue("HH:MM:SS") '指定時刻に他プロシージャが実行中の場合の待ち時間 ※2
Application.OnTime TimeValue(指定時刻), _
"一定時間後に実行するマクロ名", _
TimeValue(待ち時間)
End Sub
Sub 一定時間後に実行するマクロ名()
' 'ここへマクロを記入
End Sub
'---------------------------------------------------------------

Sub 実行中のマクロを指定時刻まで一時中断して再開する()
指定時刻 = Now + TimeValue("HH:MM:SS") '現在時刻より何分後 ※2
Application.Wait (指定時刻) 'マクロ実行を指定時刻まで中断する
' 'ここへ再開後に処理するマクロを記入
End Sub
'===============================================================


'<コメント>
'※1 HH:MM:SSには任意の時刻を記入する (例) 9時5分なら 09:05:00
'※2 HH:MM:SSには任意の時間を記入する (例) 3分後なら 00:03:00

http://www.happy500z.com/YNxv214.html#8-1

この回答への補足

サンプルまで付けて頂き有難うございます。
質問なのですが、このサンプルだと、Excelが、CPUを独占しませんか?出来れば外部からの割り込みみたいなのが欲しいのですが??
ピントがずれていたら申し訳ありません。
宜しくお願い致します。

補足日時:2007/05/28 11:59
    • good
    • 1

> 質問なのですが、このサンプルだと、Excelが、CPUを独占しませんか?



最後の例の、Sub 実行中のマクロを指定時刻まで一時中断して再開する() は、実行すると、終了するまでは他の操作を受け付けなくなりますが、他のはそんなことないですよ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています