|
▼shellken さん:
>ところで、A7だけでなくA列全体をそうしたいときとかA1からA3の間だけそうしたいときはどうすればよいのですか。
コードの意味を理解して応用するようにいましょう。
>また、変化するときに大きくなるときは赤、小さくなるときは緑で3回くらい点滅させることできますか。(できるだけ簡単な方法がいいです。)
maverickさんが詳しく回答しているのを応用しましょう。
'標準モジュールに
'maverickさんのを利用して
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Function test(rng As Range, col As Long)
Cells(rng.Row, rng.Column).Interior.ColorIndex = col
Sleep 100
End Function
'====================================================
'シートモジュールに
'私のとmaverickさんのを合体させて、一度に複数セルの変化(コピペなど)には
'対応していません。
'私の力量では、こんな不細工なコードになります。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, j As Long
Dim myVal As Long, vl As Long
With Target
If .Count > 1 Then Exit Sub
If IsEmpty(.Value) Then Exit Sub
If Application.Intersect(Target, Range("A:A")) Is Nothing Then _
Exit Sub '↑A列全体
Application.EnableEvents = False
myVal = .Value
Application.Undo
vl = .Value
.Value = myVal
If .Value > vl Then
i = 3
.Interior.ColorIndex = i
ElseIf .Value < vl Then
i = 4
.Interior.ColorIndex = i
Else
i = 0
.Interior.ColorIndex = i
End If
Application.EnableEvents = True
End With
For j = 1 To 4
Call test(Target, 0)
Call test(Target, i)
Next
End Sub
|
|