- 締切済み
指定した時刻になるとセルに色がつくようにしたい
初心者です。エクセルのVBAで設定した時刻になったらセルに色がつくようにしたいです。 例えば、17:00時にA1セル、18:00にA2セルに色を自動でつくようにしたいと思っています。 OnTimeを使ったらよいと思っていろいろ試しましたが、設定した時刻になってもなにも起こりません。 標準モジュールに以下の内容を記述して、パソコンの時計を変更して確認しています。 できたらクリックしないでファイルオープンしてなにもせずに設定時刻に実行されるようにしたいです。 最初の3秒でB1に現在の時間を取得。 セルA1とA2をクリアしてから設定時間に色をつけるようにしたつもりです。 下記が記述内容です。 Sub 指定時間にマクロを開始() Dim stime As Date Range("A1") = "" Range("A2") = "" Range("B1").Select stime = Now + TimeValue("00:00:03") Application.OnTime TimeValue(stime), "マクロ実行内容", TimeValue("00:05:00") End Sub Sub 時刻の設定1() Application.OnTime EarliestTime:=TimeValue("17:00:00"), Procedure:="Test" End Sub Sub Procedure() Range("A1").Interior.ColorIndex = 8 End Sub Sub 時刻の設定2() Application.OnTime EarliestTime:=TimeValue("18:00:00"), Procedure:="Test" End Sub Sub Procedure2() Range("A2").Interior.ColorIndex = 9 End Sub 実行マクロは有効にしています。 ご教授よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
標準モジュールにたとえば sub Auto_Open() ’↑標準モジュールに記載する自動起動マクロ on error resume next worksheets("シート名").range("A1:A2").clear application.ontime timevalue("17:0:0"), "Macro1", schedule:=false application.ontime timevalue("17:0:0"), "Macro1" application.ontime timevalue("18:0:0"), "Macro2", schedule:=false application.ontime timevalue("18:0:0"), "Macro2" end sub sub macro1() worksheets("シート名").range("A1").interior.color = vbred end sub sub macro2() worksheets("シート名").range("A2").interior.color = vbyellow end sub といった具合に。
- hallo-2007
- ベストアンサー率41% (888/2115)
Procedure:="Test" とTset で実行するマクロの名前を指定しています。 Sub Procedure2() Range("A2").Interior.ColorIndex = 9 End Sub は Sub Test() Range("A2").Interior.ColorIndex = 9 End Sub ですね。
お礼
ありがとうございます。大変勉強になりました。
お礼
すぐに回答いただきありがとうございます。できました。こういうやり方もあるのですね。 大変勉強になりました。本当にありがとうございます。 次のステップとして18:00になると17:00に変わったセルの色を戻す(白)ようにやってみたいとと思います。