最近Mac版のExcel 2008を触っているのですが、Windows版にはない機能などがあって、なかなか楽しいです。何より、今まで食わず嫌いしていたMacintoshがおもしろいです。基本的な操作で悩むことも多いのですが、それがまた、パソコンを始めた頃のような新鮮さです。ちなみに、Mac版Excel 2008のレビューと、Macintosh(MacBook)のレビューは下記リンクをご覧ください。
Mac版Excel 2008には「タイマー機能」があります。指定した時間がくるとメッセージが表示される機能です。Excel 2008だけで実現しているわけではありませんが、なかなか楽しい機能です。そういえば、Windows版のExcelでも、指定した時刻にマクロを起動する機能がありましたっけ。ちなみに、Excel 2008には
VBAが搭載されていません。、
指定した時刻にマクロを起動するには、ApplicationオブジェクトのOnTimeメソッドを使います。
OnTimeメソッドの書式は次の通りです。
OnTime(EarliestTime, Procedure, LatestTime, Schedule)
引数EarliestTimeには、マクロを実行する時刻を指定します。
引数Procedureには、指定した時刻に実行するプロシージャ名を指定します。
引数LatestTimeは省略可能です。もし指定した時刻にほかのマクロが起動していると、OnTimeメソッドで設定したマクロが実行できません。そんなとき、引数LatestTimeで指定した時間だけ待ちます。
引数Scheduleは省略可能です。OnTimeメソッドの設定を有効/無効にします。
引数Scheduleを省略するかTrueを指定すると、スケジュールが有効になります。
引数ScheduleにFalseを指定すると、スケジュールを取り消します。
まず、時刻になったら実行するマクロを作ります。
Sub AlarmMessage()
MsgBox "時間です!", vbInformation
End Sub
そして、次のマクロを実行します。
Sub SetAlarm()
Application.OnTime TimeValue("16:00:00"), "AlarmMessage"
End Sub
これで、あとは普通にExcelを使っていればいいです。指定した時刻(ここでは16:00:00)がくると、指定したマクロ(ここではAlarmMessage)が起動します。
OnTimeメソッドで設定したスケジュールが有効になるのは、OnTimeメソッドを実行したブックがExcel上で開かれている間です。もちろん、Excelを再起動すると、スケジュールは無効になります。
上記のスケジュールを解除するには、次のようにします。
Sub SetAlarm()
Application.OnTime TimeValue("15:45:00"), "AlarmMessage", , False
End Sub
マクロを起動する時刻は、「9:00」とか「18:00」のように特定の時刻を指定する場合は上記のようにTimeValue関数を使うと便利です。また、「現在の時刻から5分後」などの指定は、次のようにするといいでしょう。
Sub SetAlarm()
Application.OnTime Now + TimeValue("00:05:00"), "AlarmMessage"
End Sub