|
▼超初心者 さん:
ありがとうございます。
あらかじめ関数を設定しておいて入力すれば,
>A・B列は計算ゆえ、入力不要(A2,B2のみ入力)。
>よって、
>> (分数が足らない,時間が重複する
は発生しない。
は、ひとつのヒントになったような気がします。
ただ、すでに入力してあるものに対してチェックを行いたいというのが私が
今回求めるところです。
みなさまには引き続き案をご提供いただけましたらと思います。
1.例えば、B3のセルが2155、B2のセルが2100、C2のセルが055
だったとすれば、B3のセルは2155でOKとしてセルには何も色付けしない。
仮にここでB3のセルが2155でなければNGとしてセルを赤く塗りつぶす
といったことができないでしょうか?
例えば、下のような感じで。
(ただし、これでは※の部分で処理が止まってしまいますし、単純な足し算の
ため時間計算が合わなくなります。)
Sub test()
Dim LastRow As Long
With Cells(Rows.Count, 1)
LastRow = WorksheetFunction.Max( _
.End(xlUp).Row, _
.Offset(, 1).End(xlUp).Row, _
.Offset(, 2).End(xlUp).Row _
)
End With
For i = 2 To LastRow '最終行を取得
If Range("B" & i) <> Range("B" & i - 1) + Range("C" & i - 1) Then ※
Range("B" & i).Select
With Selection.Interior
.ColorIndex = 3
End With
Else
Range("B" & i).Select
With Selection.Interior
.ColorIndex = xlNone
End With
End If
Next i
End Sub
2.さらに,例えばA列が月曜のときのC列の分数の合計が1440分でなければ
特定のセルに色を塗るまたはメッセージを出すといったことをしたいです。
(各曜日の合計分数は必ず1440分になるという仕様です。)
例えば,下のような感じで(いけるのかどうかわかりませんが)。
※C列の分数の合計を求める部分がわかりません。
If Range("A" & i) = "月" And ※C列の分数の合計 <> 1440 Then
Range("B" & i).Select
With Selection.Interior
.ColorIndex = 3
End With
End If
Next i
End Sub
|
|