View Single Post
  #5   Report Post  
Andy Wiggins
 
Posts: n/a
Default

Blinking is not part of the Excel interface, which was the area I understood
the OP to be asking about.

I accept that your code produces the blinking effect, but at what expense?
It's based on a never-ending Do loop. This code goes into my museum of
time-wasters.

--
Andy Wiggins FCCA
www.BygSoftware.com
Excel, Access and VBA Consultancy
-

"Harlan Grove" wrote in message
ups.com...
Andy Wiggins wrote...
Sorry, you can't do blinking in Excel.

...

I hate categorically false answers. There's no built-in support, and
it's klunky, but it *IS* possible.


Sub blikningstupidity()
Dim s As Long, dt As Date, ac As Range, sb As Boolean
Dim sls As XlLineStyle, sw As XlBorderWeight, sci As XlColorIndex
Dim bls As Variant, bw As Variant, bci As Variant

bls = Array(xlContinuous, xlDash, xlDot, xlDouble)
bw = Array(xlThin, xlMedium, xlThick)
bci = Array(2, 3, 4, 5, 6, 7, 8)

Set ac = ActiveCell
If ac.Borders.LineStyle = xlNone Then
sb = False
Else
sb = True
With ac.Borders
sls = .LineStyle
sw = .Weight
sci = .ColorIndex
End With
End If

Do 'forever
If ac.Address(External:=1) = ActiveCell.Address(External:=1) Then
With ac.Borders
.LineStyle = bls(s Mod UBound(bls))
.Weight = bw(s Mod UBound(bw))
.ColorIndex = bci(s Mod UBound(bci))
End With

dt = Now + TimeSerial(0, 0, 1)
Do While Now < dt
DoEvents
Loop

s = s + 1
Else
If sb Then
With ac.Borders
.LineStyle = sls
.Weight = sw
.ColorIndex = sci
End With
Else
ac.Borders.LineStyle = xlNone
End If

Set ac = ActiveCell
If ac.Borders.LineStyle = xlNone Then
sb = False
Else
sb = True
With ac.Borders
sls = .LineStyle
sw = .Weight
sci = .ColorIndex
End With
End If
End If
Loop
End Sub