|    | 
     よろしくお願いします。 
 
出勤簿を作成中です。 
・sheet1のB8:B56とI8:I56に日付セルを設け、コマンドボタンで日付入力されます。 
・同様にC,K列には出勤時刻、D,L列には退勤時刻を設け、コマンドボタンで現在時刻が入力されます。 
・日付入力は1日1回まで。同一日の複数入力は許可しません。(1日複数回の外出があり、その都度時刻を入力) 
 
上記の仕様で、下記のコードを入力したのですが、 
日付入力が重複された場合に出るMsgbox「日付が重複…」がOKクリック後も何度も表示されてしまいます。 
ただし、この不具合は1回目の"打刻"では発生せず、3・4回目から発生しやすくなります。 
どの部分に誤りがあるのでしょうか? 
ご教授いただければ幸いです。 
 
■sheet1 
Option Explicit 
Private Sub Worksheet_Change(ByVal target As Range) 
If target.Column <> 2 And target.Column <> 9 Then Exit Sub 
If Application.WorksheetFunction.CountIf(Range("B:I"), target.Value) > 1 Then 
MsgBox "日付が重複しています。", vbCritical 
target.Value = "" 
End If 
End Sub 
 
■標準モジュール 
Sub recday_Click() 
If Not Application.Intersect(ActiveCell, Range("B8:B56,I8:I56")) Is Nothing Then 
ActiveCell.Value = Day(Date) & " " & WeekdayName(Weekday(Now), True) 
ActiveCell.Offset(0, 1).Select 
Else 
MsgBox "そのセルには入力できません。", vbCritical 
End If 
End Sub 
 
 | 
     
    
   |