|
こんにちは。
力をお貸しください。
A列には[2009/7/13 8:00:00]
といったdate型の値が記入してあります。
平日: 9:00〜17:30以外
土日祝日: 全日
を時間外として表示するものを作りたいのですが
曜日判別はうまくいったものの、時間をうまく認識してくれません。
どこに問題があるのかご指南いただけますでしょうか。
また、祝日を認識するにはどのような手段があるか、
ヒントをいただけると助かります。
※祝日リストをシートに作って期日が合致するかどうか見るしかないかなあ、と現時点では考えていますが…もっとスマートな方法があればそちらを取りたいと思っています。
sub test()
Dim Gyou As Long
Dim sday As Date
Dim ws1 As Worksheet
Set ws1 = ThisWorkbook.Worksheets("DATE")
Gyou = InputBox("何行目を見ますか")
sday = ws1.Range("A" & Gyou)
Select Case Weekday(sday, vbSunday)
Case 2, 3, 4, 5, 6 '月火水木金
If TimeSerial(9, 0, 0) > sday > TimeSerial(17, 30, 0) Then
MsgBox "時間外"
Else
MsgBox "時間内"
End If
Case 1, 7 '土日
MsgBox "時間外"
End Select
End Sub
※
If TimeSerial(9, 0, 0) > sday > TimeSerial(17, 30, 0) Then
の[sday]の部分を[Format(sday, "HH:NN:SS")]に変更しても駄目でした。
どうぞよろしくお願いいたします。
|
|