|
ブックを起動したとき、スケジュールを重複設定しないためと、
処理時間をチェックするためのフラグを、先頭シートのIV1:IV3セル
に入力します。また、エクセルのMsgBoxではいちいちボタンを押すか
Enterキーを押さないと消えないので、万が一消し忘れても大丈夫
なように、WSHのPopUpメソッドを使って"7秒後に自動的に消える"
タイマー付きメッセージにしてみました。(表示時間は、Popupメソッドの
第二引数で設定します。ただし、あまり正確ではないようです。)
Sub Auto_Open()
Dim MyR As Range
Set MyR = Worksheets(1).Range("IV1:IV3")
With Application
If .Count(MyR) > 0 Then GoTo ELine
If IsEmpty(MyR.Cells(1)) And _
Time < TimeValue("10:00:00") Then
.OnTime TimeValue("10:00:00"), "MyScd"
MyR.Cells(1).Value = "10:01:00"
End If
If IsEmpty(MyR.Cells(2)) And _
Time < TimeValue("11:55:00") Then
.OnTime TimeValue("11:55:00"), "MyScd"
MyR.Cells(2).Value = "11:56:00"
End If
If IsEmpty(MyR.Cells(3)) And _
Time < TimeValue("15:00:00") Then
.OnTime TimeValue("15:00:00"), "MyScd"
MyR.Cells(3).Value = "15:01:00"
End If
End With
ELine:
Set MyR = Nothing
End Sub
Sub MyScd()
Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
With Worksheets(1)
If Time < .Range("IV1").Value Then
WshShell.Popup "休憩時間ですよ", 7, , 64
.Range("IV1").Clear
ElseIf Time < .Range("IV2").Value Then
WshShell.Popup "そろそろ昼食の時間です", 7, , 64
.Range("IV2").Clear
ElseIf Time < .Range("IV3").Value Then
WshShell.Popup "お茶の時間ですよ", 7, , 64
.Range("IV3").Clear
End If
End With
Set WshShell = Nothing
End Sub
|
|