Я пытаюсь создать макрос, чтобы высвечивать визуальный сигнал, когда пользователь открывает книгу, основываясь на некоторых условиях, описывающих состояние рабочей книги.Вспышка во всплывающем окне Excel
Что бы я хотел сделать, это заполнить весь экран/область ячейки/тему границы excel цветом, который не влияет на форматирование ячейки или содержимое чего-либо (это только временно). Мой текущий подход заключается в создании формы для заполнения экрана и, при необходимости, изменения цвета заливки.
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'allows for pauses in the millisecond range
Sub Flash_routine()
Dim FillCol As Long
FillCol = RGB(255, 186, 49)
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0, 0, 2000, 1000).Select
For x = 1 To 2 'phase ie. lightingup, empty
If x = 1 Then
IncVal = 0.5
Else
IncVal = 0.05
End If
For i = 0 To 1 Step IncVal
With Selection.ShapeRange.Fill
.Visible = msoTrue
.ForeColor.RGB = FillCol
If x = 1 Then
.Transparency = 1 - i
Else
.Transparency = i
End If
.Solid
End With
Sleep 50
'dictates time between successive shape fills
ActiveWindow.SmallScroll down:=3
ActiveWindow.SmallScroll up:=3
'refreshes screen view
Next i
Next x
Selection.Delete
End Sub
Макрос вызывается в Workbook_Open случае
Однако есть несколько проблем, которые я был бы признателен за помощь с;
Прежде всего, это правильный подход или есть какое-то приложение оттенка экрана, о котором я не знаю?
Предполагая, что это - моя форма не заполняет экран. У меня было впечатление, что
AddShape(msoShapeRectangle, 0, 0, 2000, 1000)
поместит мою фигуру в верхний левый угол (0,0), но на самом деле она немного поместится вниз (столбец 1, 3 ряда вниз от того места, где сейчас выглядит мое окно, например, если я смотрю наF13:X55
это верхний угол расположен вF16
, а объект покрывает остальные ячейки, но не верхние 3 ряда)- Как мне обратиться к форме? Я не знал, как я оставил его как
Selection.ShapeRange.Fill
, но я знаю, что выбор плох. Практика VBA - Наконец, прокручивается лучший способ обновления окна? по какой-то причине он иногда даже не работает, и весь макрос бежит без меня.
Я знаю, что это очень много мелких точек, если требуется совсем другой подход, они могут даже не иметь значения! Также, если изменить тему excel от зеленого до нового цвета и постепенно вернуться снова, это будет действительно потрясающе. Спасибо за решение или любые общие советы для новорожденного VBAer!
Все еще получая 3 недостающих ряда, я думаю, что это может быть до свитка 3 – Greedo
Ах, только что увидел ваше обновление, я постараюсь сделать события и посмотреть, все ли я получаю пустые строки. – Greedo
Ха-ха, без проблем повезло. Я довольно устал, поэтому мне пришлось отредактировать, поскольку я увидел ваши дополнительные вопросы после отправки ответа ... Ой. Я счастлив поиграть с этим больше, если вам нужно, поскольку на данный момент у меня нет большой работы. –