If IsDate(ws.Cells(i, 1).Value) Then
で全部処理対象外になってしまいます。
時間だけの場合は IsDate がFalseになるので。
あと私見ですが項目名は全角にしない方がいいと思います。
Sub test()
Dim Lastrow As Long
Dim i As Long
Dim 休憩開始 As Date
Dim 休憩終了 As Date
休憩開始 = TimeSerial(12, 0, 0)
休憩終了 = TimeSerial(12, 45, 0)
With Worksheets(\u0026quot;Sheet1\u0026quot;)
Lastrow = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 5 To Lastrow
If .Cells(i, 1).Value \u0026gt; 休憩開始 And .Cells(i, 1).Value \u0026lt; 休憩終了 Then
.Cells(i, 1).Value = 休憩終了
End If
Next i
End With
End Sub