VBAで日付m/d形式で入力されているものをカウントしたいです。セルの書式設定はm/d 書式設定を変えてもカウントされません。 現在のコードはこちらなのですが、*や?を組合わせ色々やってみたのですがダメで直接入力例えば5/5などをカウントするようにするとできます。どう修正すればカウントできますか?全て該当すると思われるコードを提示します。 Sub 休みカウント() '4月~翌年4月の休みカウント Dim 年 As Integer 年 = Sheets("カレンダー").Range("H2").Value For m1 = 9 To 485 '2月うるう年もあるとして適当 If Sheets("カレンダー").Cells(4, m1).Value = DateSerial(年, 4, 1) Then 始1月 = m1 '1月始め 始1月 = Sheets("カレンダー").Cells(4, m1).Address str1 = 始1月 str1 = Split(始1月, "$")(1) '列名 str行1 = Split(始1月, "$")(2) '行数 始1月 = str1 & str行1 '人数分の数 人1始1月 = Range(始1月).Offset(2, 0).Address 'メンバー1の開始アドレス これが7つ For o3 = 9 To 485 If Sheets("カレンダー").Cells(4, o3).Value = DateSerial(年 + 1, 4, 1) Then 終3月 = o3 '3月終わりと人数分の数 終3月 = Sheets("カレンダー").Cells(4, o3).Offset(0, -1).Address end3 = 終3月 end3 = Split(終3月, "$")(1) '列名 end行3 = Split(終3月, "$")(2) '行数 終3月 = end3 & end行3 人1終3月 = Range(終3月).Offset(2, 0).Address 'メンバー1の開始アドレス これが7つ End If Next o3 'ここからが質問内容。色々設定したがダメ With Sheets("カレンダー") .Range("F6").Value = WorksheetFunction.CountIf(.Range(人1始1月 & ":" & 人1終3月), "*/") .Range("F7").Value = WorksheetFunction.CountIf(.Range(人2始1月 & ":" & 人2終3月), "*" & "/" & "*") .Range("F8").Value = WorksheetFunction.CountIf(.Range(人3始1月 & ":" & 人3終3月), "5/5")’カウントできる ’・・・省略 '色々設定したがダメ End With End If Next m1 '関係ないと思うがセルの変更で日付なら直接入力そうでなければ頭文字を設定 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("I6:TU12")) Is Nothing Then Exit Sub Application.EnableEvents = False cellValue = Target.Value If IsDate(cellValue) Then IsDate (cellValue) Else ' 日付形式でない場合は頭文字を表示 Target.Value = Left(cellValue, 1) End If Application.EnableEvents = True Call 休みカウント End Sub
Visual Basic