Элемент управления пользовательской формы CommandButton, используемый в VBA Excel для запуска процедур и макросов. Свойства кнопки, примеры кода с ней.
Элемент управления CommandButton
Для запуска процедур и макросов обычно используется событие кнопки – Click.
Свойства элемента CommandButton
Свойство | Описание |
---|---|
AutoSize | Автоподбор размера кнопки. True – размер автоматически подстраивается под длину введенной надписи (заголовка). False – размер элемента управления определяется свойствами Width и Height. |
BackColor | Цвет элемента управления CommandButton. |
Caption | Надпись (заголовок) – текст, отображаемый на кнопке. |
ControlTipText | Текст всплывающей подсказки при наведении курсора на кнопку. |
Enabled | Возможность взаимодействия пользователя с элементом управления CommandButton. True – взаимодействие включено, False – отключено (цвет надписи становится серым). |
Font | Шрифт, начертание и размер текста надписи. |
Height | Высота элемента управления. |
Left | Расстояние от левого края внутренней границы пользовательской формы до левого края элемента управления. |
Picture | Добавление изображения вместо текста заголовка или дополнительно к нему. |
PicturePosition | Выравнивание изображения и текста на кнопке. |
TabIndex | Определяет позицию элемента управления в очереди на получение фокуса при табуляции, вызываемой нажатием клавиш «Tab», «Enter». Отсчет начинается с 0. |
Top | Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края элемента управления. |
Visible | Видимость элемента управления CommandButton. True – элемент отображается на пользовательской форме, False – скрыт. |
Width | Ширина элемента управления. |
WordWrap | Перенос текста заголовка на новую строку при достижении ее границы. True – перенос включен, False – перенос выключен. |
В таблице перечислены только основные, часто используемые свойства кнопки. Все доступные свойства отображены в окне Properties элемента управления CommandButton.

Пример кнопки с надписью и изображением
Примеры кода VBA Excel с кнопкой
Изначально для реализации примеров на пользовательскую форму UserForm1 добавлена кнопка CommandButton1.
Пример 1
Изменение цвета и надписи кнопки при наведении на нее курсора.
Условие примера 1
- Действия при загрузке формы: замена заголовка формы по умолчанию на «Пример 1», замена надписи кнопки по умолчанию на «Кнопка», запись цвета кнопки по умолчанию в переменную уровня модуля.
- Сделать, чтобы при наведении курсора на кнопку, она изменяла цвет на зеленый, а надпись «Кнопка» менялась на надпись «Нажми!»
- Добавление кода VBA Excel, который будет при удалении курсора с кнопки возвращать ей первоначальные настройки: цвет по умолчанию и надпись «Кнопка».
Решение примера 1
1. Объявляем в разделе Declarations модуля пользовательской формы (в самом начале модуля, до процедур) переменную myColor:
1 |
Dim myColor As String |
2. Загружаем пользовательскую форму с заданными параметрами:
1 2 3 4 5 6 7 |
Private Sub UserForm_Initialize() Me.Caption = "Пример 1" With CommandButton1 myColor = .BackColor .Caption = "Кнопка" End With End Sub |
3. Меняем цвет и надпись кнопки при наведении на нее курсора мыши:
1 2 3 4 5 6 7 8 |
Private Sub CommandButton1_MouseMove(ByVal _ Button As Integer, ByVal Shift As Integer, _ ByVal X As Single, ByVal Y As Single) With CommandButton1 .BackColor = vbGreen .Caption = "Нажми!" End With End Sub |
4. Возвращаем цвет и надпись кнопки при удалении с нее курсора мыши:
1 2 3 4 5 6 7 8 |
Private Sub UserForm_MouseMove(ByVal _ Button As Integer, ByVal Shift As Integer, _ ByVal X As Single, ByVal Y As Single) With CommandButton1 .BackColor = myColor .Caption = "Кнопка" End With End Sub |
Все процедуры размещаются в модуле пользовательской формы. Переменная myColor объявляется на уровне модуля, так как она используется в двух процедурах.
Пример 2
Запуск кода, размещенного внутри процедуры обработки события Click элемента управления CommandButton:
1 2 3 |
Private Sub CommandButton1_Click() MsgBox "Код внутри обработки события Click" End Sub |
Пример 3
Запуск внешней процедуры из процедуры обработки события Click элемента управления CommandButton.
Внешняя процедура, размещенная в стандартном модуле проекта VBA Excel:
1 2 3 |
Sub Test() MsgBox "Запуск внешней процедуры" End Sub |
Вызов внешней процедуры из кода обработки события Click
- с ключевым словом Call:
1 2 3 |
Private Sub CommandButton1_Click() Call Test End Sub |
- без ключевого слова Call:
1 2 3 |
Private Sub CommandButton1_Click() Test End Sub |
Строки вызова внешней процедуры с ключевым словом Call и без него – равнозначны. На ключевое слово Call можно ориентироваться как на подсказку, которая указывает на то, что эта строка вызывает внешнюю процедуру.