2016-08-24 25 views
1

特定のセルを点滅させるコードを使用しています。選択したセルだけを点滅させるようにコードを修正しました。問題は、選択を変更した後にマクロがセルに「滞留しない」ということです。 例:セルB6を選択してマクロを実行すると、点滅が開始され、次にセルB7が選択され、B6は点滅を停止しますが、マクロを実行しなくてもB7が起動します。 どうすれば修正できますか?選択範囲内で点滅するセル

現在のコード:

Option Explicit 
Dim NextBlink As Double 

Sub StartBlinking() 

    If Selection.Interior.ColorIndex = 3 Then 
     Selection.Interior.ColorIndex = 0 
    Else 
     Selection.Interior.ColorIndex = 3 
    End If 
    NextBlink = Now + TimeSerial(0, 0, 0.6) 
    Application.OnTime NextBlink, "StartBlinking", , True 

End Sub 
+0

コードを。セルが選択されないと、セルは点滅を停止します。 – PaichengWu

+0

その解決策はありますか? – Pawel

+0

以前に選択したセルの配列を保持し、既にその配列にあったものを再度選択する必要がある場合は、それを修正する必要があります。私はそれは簡単だろうと言っているわけではない... –

答えて

1

このお試しください:選択セルのみを点滅

Option Explicit 
Dim NextBlink As Double 
Dim blinkingcells As Range 
Sub StartBlink() 'call this make current cell start blinking 
    If blinkingcells Is Nothing Then 
     'start blinking 
     Set blinkingcells = Selection 
     Call Blinking 
    Else 
     'blinking already, just add more blinkingcells 
     Set blinkingcells = Union(blinkingcells, Selection) 
    End If 
End Sub 

Sub Blinking() 
'make cells in global range "blinkingcell" blink 
    Dim cell As Range 
    For Each cell In blinkingcells 
     If cell.Interior.ColorIndex = 3 Then 
      cell.Interior.ColorIndex = 0 
     Else 
      cell.Interior.ColorIndex = 3 
     End If 
    Next 
    NextBlink = Now + TimeSerial(0, 0, 0.6) 
    Application.OnTime NextBlink, "Blinking", , True 
End Sub 
+0

は完璧に動作します。ありがとう! – Pawel