Мигающая ячейка

Рассмотрим достаточно интересный трюк, с помощью которого можно заставить мигать (то есть попеременно изменять цвета) любую ячейку в течение некоторого промежутка времени.

Предположим, что нам необходима ячейка, которая 10 раз каждые 5 секунд будет изменять цвет фона с красного на зеленый. Для решения этой задачи воспользуемся следующим макросом (листинг 3.75).

Листинг 3.75. Мигание ячейки

Sub BlinkingCell()

Static intCalls As Integer ' Счетчик количества миганий

' Если ячейка мигала менее 10 раз, то изменим _

в очередной раз ее цвет

If intCalls < 10 Then

intCalls = intCalls + 1

' Определение, какой цвет необходимо установить

If Range(«A1»).Interior.Color <> RGB(255, 0, 0) Then

' Цвет ячейки не красный, так что теперь назначим _

именно красный цвет

Range(«A1»).Interior.Color = RGB(255, 0, 0)

Else

' Назначим ячейке зеленый цвет

Range(«A1»).Interior.Color = RGB(0, 255, 0)

End If

' Эту процедуру необходимо вызвать через 5 секунд

Application.OnTime Now + TimeValue(«00:00:05»),

«BlinkingCell»

Else

' Хватит мигать

Range(«A1»).Interior.ColorIndex = xlNone

intCalls = 0

End If

End Sub

После запуска макроса BlinkingCell будет мигать ячейка Al. Путем внесения соответствующих изменений в приведенный макрос можно регулировать продолжительность цикла и изменять цвета фона по своему усмотрению.