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

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

    Элемент управления пользовательской формы CheckBox для выбора или невыбора его пользователем и передачи результата в VBA Excel. Свойства «Флажка», примеры кода.

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

    UserForm.CheckBox – это элемент управления пользовательской формы, предназначенный для передачи в код VBA информации о выборе или невыборе его пользователем и возвращающий одно из двух значений: False (галочки нет) или True (галочка установлена).

    Элемент управления CheckBox на пользовательской форме

    Элемент управления CheckBox состоит из флажка и надписи. В VBA Excel флажок имеет квадратную форму, надпись расположена справа от него. Надпись реагирует на нажатие мышью так же, как и флажок.

    По тексту статьи значение слова «Флажок» в кавычках равно значению слова CheckBox, флажок без кавычек обозначает квадрат с галочкой или без нее.

    Кроме состояний «выбран» или «не выбран», существует и третье состояние флажка: серая галочка на сером фоне. Получить такое состояние на пользовательской форме можно путем присвоения свойству CheckBox.Value значения Null.

    Три состояния элемента управления CheckBox

    Надписи флажков выведены с помощью следующего кода VBA Excel:

    Интересно было посмотреть, какое значение отобразится в надписи элемента управления CheckBox2. Обратите внимание на то, что если строку CheckBox2.Caption = "CheckBox2.Value = " & CheckBox2.Value заменить на CheckBox2.Caption = CheckBox2.Value, будет сгенерирована ошибка, так как в VBA не существует текстового отображения значения Null.

    Эксперименты показали, что отобразить «Флажок» в третьем состоянии можно также с помощью присвоения свойству CheckBox.Value значения «пустая строка».

    Элемент управления CheckBox может использоваться на пользовательской форме для

    • выбора или отмены каких-либо параметров и условий,
    • отображения или скрытия других элементов управления,
    • изменение доступности других элементов управления для взаимодействия с пользователем.

    Если требуется выбор только одной опции из группы предложенных, для этой цели в VBA Excel используется набор элементов управления OptionButton.

    Свойства элемента «Флажок»

    Свойство Описание
    AutoSize Автоподбор размера «Флажка». True – размер автоматически подстраивается под длину набираемой строки. False – размер элемента управления определяется свойствами Width и Height.
    ControlSource Ссылка на источник данных для свойства Value.
    ControlTipText Текст всплывающей подсказки при наведении курсора на CheckBox.
    Enabled Возможность взаимодействия пользователя с элементом управления. True – взаимодействие включено, False – отключено (цвет флажка и надписи становится серым).
    Font Шрифт, начертание и размер текста надписи.
    Height Высота элемента управления.
    Left Расстояние от левого края внутренней границы пользовательской формы до левого края элемента управления.
    Picture Добавление изображения вместо текста надписи или дополнительно к нему.
    PicturePosition Выравнивание изображения и текста в поле надписи.
    TabIndex Определяет позицию элемента управления в очереди на получение фокуса при табуляции, вызываемой нажатием клавиш «Tab», «Enter». Отсчет начинается с 0.
    TextAlign* Выравнивание текста надписи: 1 (fmTextAlignLeft) – по левому краю, 2 (fmTextAlignCenter) – по центру, 3 (fmTextAlignRight) – по правому краю.
    Top Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края элемента управления.
    TripleState Определяет, может ли пользователь делать выбор между двумя состояниями «Флажка» или между тремя, включая серую галочку на сером квадрате. True – доступны три состояния, False – доступны два состояния.
    Value Значение «Флажка»: True – галочка установлена, False – галочка не установлена, Null – серая галочка на сером квадрате.
    Visible Видимость элемента CheckBox. True – элемент отображается на пользовательской форме, False – скрыт.
    Width Ширина элемента управления.
    WordWrap Перенос текста надписи на новую строку при достижении границы ее поля. True – перенос включен, False – перенос выключен.

    * При загруженной в поле надписи картинке свойство TextAlign не работает, следует использовать свойство PicturePosition.

    Свойство по умолчанию для элемента CheckBox – Value, основное событие – Click.

    В таблице перечислены только основные, часто используемые свойства «Флажка». Все доступные свойства отображены в окне Properties элемента управления CheckBox.

    Примеры использования CheckBox

    Пример 1
    Отображение элемента управления CheckBox на пользовательской форме с параметрами, заданными в коде VBA Excel:

    Элемент управления CheckBox, привязанный к ячейке

    Размещается данная процедура в модуле пользовательской формы.

    Если несколько элементов управления CheckBox привязать к одной ячейке, то при клике на одном из них, менять свое состояние будут и все остальные.

    Пример 2
    Смена надписи «Флажка» в зависимости от его состояния:

    Пример 3
    Скрытие и отображение, изменение доступности других элементов управления с помощью «Флажка».

    Для реализации этого примера необходимо создать пользовательскую форму с четырьмя элементами управления: CheckBox1, TextBox1, TextBox2 и CommandButton1. А в модуле формы разместить следующий код:

    Форма открывается с недоступными для пользователя текстовыми полями и скрытой кнопкой «Сложить»:

    После установки галочки на флажке текстовые поля становятся доступными для редактирования, и отображается кнопка «Сложить»:


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

    1 комментарий для “VBA Excel. Элемент управления CheckBox (флажок)”

    1. Здравствуйте. Подскажите пожалуйста, можно реализовать следующее в Word и Excel 2010:
      1) из меню «разработчик» вставить элемент ActiveX — флажок (CheckBox)
      2) так же в файл вставить рисунок (или обычным способом или как элемент ActiveX)
      3) рисунок разместить на листе в стороне от области, которую потом нужно будет печатать.
      4.1) при нажатии на флажок (CheckBox) рисунок нужно отобразить в области листа, подготавливаемой к печати.
      4.2)Или может быть рисунок сразу разместить где нужно, и с помощью CheckBox делать его видимым или не видимым.

      Рисунков и CheckBox будет несколько. Каждый CheckBox будет связан с одним рисунком.

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