|
こんにちは。かみちゃん です。
お返事遅くなりました。
>1、セル色の設定は条件付書式になます。
> しかし時々セルの書式設定で変更します。
>条件付書式は
> If Cells(i, 4).Value > Cells(1, 4).Value And _
> Cells(i, 4).Value <= Cells(1, 6).Value Then
> Cells(i, K).Interior.ColorIndex = 3
このコードだと、「条件付き書式」ではなく「セルの書式設定」による書式が設定されていると思います。
以下、条件分岐による「セルの書式設定」がされているという前提で書きます。
>4、>>80 合計出勤者 60名 65名 55名
> >合計出勤者の数え方が不明です。
>
> D列以降にはその日の勤務した時間(8であれば8時間勤務)が記載されます。
> 記載があれば出勤したということになり、空白であれば休暇になります。
> そこから、毎日の合計出勤者の数を出します。
たとえば、0と記載されていれば、どうしますか?
そういうことも考慮すると、一般関数のCOUNTIF関数でできると思います。
以上を踏まえて、処理するならば、以下のようなコードでできると思います。
Sub Macro1()
Dim LastRow As Long, RowNo As Long
Dim LastColumn As Integer, ColumnNo As Integer
Dim lngSum03 As Long, lngSum06 As Long
Dim c As Range
LastRow = Range("A65536").End(xlUp).Row
LastColumn = Range("IV2").End(xlToLeft).Column
Range(Cells(LastRow + 1, 4), Cells(LastRow + 1, LastColumn)).Formula _
= "=COUNTIF(D3:D" & LastRow & ","">0"")"
For ColumnNo = 4 To LastColumn
lngSum03 = 0
lngSum06 = 0
For RowNo = 3 To LastRow
With Cells(RowNo, ColumnNo)
Select Case .Interior.ColorIndex
Case 3 '赤
lngSum03 = lngSum03 + .Value
Case 6 '黄
lngSum06 = lngSum06 + .Value
End Select
End With
Next
Cells(LastRow + 2, ColumnNo).Value = lngSum03
Cells(LastRow + 3, ColumnNo).Value = lngSum06
Next
End Sub
|
|