|
その表を
D6は開始時間帯・E6は終了時間帯・F6以下F列には、D6:E6に規定時間内の
勤務時間を入力した場合だけ、連続して氏名を入力していくように入力フォーム
を出す。
という仕様にするとしてF4の値とF6の数式はクリアし、当該シートのシート
モジュールに以下のイベントを入れてみて下さい。
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Address <> "$E$6" Then Exit Sub
If .Count > 1 Then Exit Sub
If IsEmpty(.Value) Then Exit Sub
If InStr(.Text, ":") < 2 Or _
InStr(.Offset(, -1).Text, ":") < 2 Then
MsgBox "開始時間・終了時間を" & vbLf & _
"0:00:00 の時刻形式で入力して下さい", 48
GoTo ELine
End If
If .Offset(, -1).Value <= TimeValue("9:00:00") And _
.Value > TimeValue("9:00:00") Then
Do
MyNm = InputBox("お名前を入力して下さい")
Loop While MyNm = ""
If IsEmpty(.Offset(, 1).Value) Then
.Offset(, 1).Value = MyNm
Else
Range("F65536").End(xlUp).Offset(1).Value = MyNm
End If
Else
GoTo ELine
End If
End With
Exit Sub
ELine:
Application.EnableEvents = False
Range("D6:E6").ClearContents
Application.EnableEvents = True
End Sub
|
|