Изменение цвета и надписи кнопки при наведении на нее курсора с помощью кода VBA Excel. Событие CommandButton_MouseMove.
Событие CommandButton_MouseMove
Для изменения цвета кнопки и ее надписи при наведении курсора будем использовать событие CommandButton_MouseMove.
Событие CommandButton_MouseMove возникает при перемещении пользователем курсора мыши над соответствующим объектом CommandButton.
Другими словами, объект, к которому привязано событие MouseMove, распознает перемещение мыши, когда положение курсора мыши находится в границах этого объекта.
Изменение цвета и надписи кнопки
Пример изменения цвета кнопки и ее надписи с помощью кода VBA Excel при наведении курсора на объект CommandButton с надписью «OK», размещенный на пользовательской форме:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) With CommandButton1 If X > 3 And X < .Width - 3 And Y > 3 And Y < .Height - 3 Then 'изменяем цвет кнопки .BackColor = vbRed 'изменяем цвет текста .ForeColor = vbWhite 'изменяем надпись кнопки .Caption = "Ну же, нажми!" Else 'возвращаем исходный цвет кнопки .BackColor = -2147483633 'возвращаем исходный цвет текста .ForeColor = -2147483630 'возвращаем исходную надпись кнопки .Caption = "OK" End If End With End Sub |
Код размещен в модуле формы.
Условие задано исходя из того, что координата Х может принимать значения от 0 до Width объекта, а Y — от 0 до Height. Число 3 используется для добавления отступов от краев объекта для более надежного срабатывания кода при удаления курсора мыши с объекта.
Результат работы кода VBA Excel по изменению цвета и надписи кнопки при наведении курсора:
Данный код VBA Excel можно использовать для кнопок на рабочем листе, если увеличить корректирующее число с 3 до 10, так как на рабочем листе событие CommandButton_MouseMove срабатывает медленнее. Код в этом случае размещается в модуле листа.
Определить исходные значения цветов можно с помощью окна Immediate.
Для кнопки на пользовательской форме:
1 2 3 4 |
? UserForm1.CommandButton1.BackColor -2147483633 ? UserForm1.CommandButton1.ForeColor -2147483630 |
Для кнопки на рабочем листе:
1 2 3 4 |
? Лист9.CommandButton1.BackColor 9894559 ? Лист9.CommandButton1.ForeColor -2147483630 |