Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

VBA Excel. Элемент управления CommandButton (кнопка)

    Элемент управления пользовательской формы CommandButton, используемый в VBA Excel для запуска процедур и макросов. Свойства кнопки, примеры кода с ней.

    Элемент управления CommandButton

    UserForm.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:

    2. Загружаем пользовательскую форму с заданными параметрами:

    3. Меняем цвет и надпись кнопки при наведении на нее курсора мыши:

    4. Возвращаем цвет и надпись кнопки при удалении с нее курсора мыши:

    Все процедуры размещаются в модуле пользовательской формы. Переменная myColor объявляется на уровне модуля, так как она используется в двух процедурах.

    Пример 2

    Запуск кода, размещенного внутри процедуры обработки события Click элемента управления CommandButton:

    Пример 3

    Запуск внешней процедуры из процедуры обработки события Click элемента управления CommandButton.

    Внешняя процедура, размещенная в стандартном модуле проекта VBA Excel:

    Вызов внешней процедуры из кода обработки события Click

    • с ключевым словом Call:

    • без ключевого слова Call:

    Строки вызова внешней процедуры с ключевым словом Call и без него – равнозначны. На ключевое слово Call можно ориентироваться как на подсказку, которая указывает на то, что эта строка вызывает внешнюю процедуру.

    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

    6 комментариев для “VBA Excel. Элемент управления CommandButton (кнопка)”

    1. Евгений

      Добрый день
      Хочу чтобы, нельзя было нажать кнопку ОК, пока не заполнятся поля пользовательской формы.
      С таким кодом не получается(

      1. Евгений Ф

        Добрый день!
        Сделайте обычную запись в несколько строк. Empty замените на пустую строку — "". Это условие должно быть включено в событие Change всех трех элементов управления.

        1. Евгений

          В каждой процедуре change прописать три условия?
          Так не работает

          1. Евгений

            Ошибку Textbox2 на texbox1 исправил, все равно не работает

          2. Евгений Ф

            Это условие должно быть включено в событие Change всех трех элементов управления:

    Обсуждение закрыто.