Макрос для чекбокса excel

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

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

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

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

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

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

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

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

Private Sub UserForm_Initialize()

CheckBox1.Value = False

CheckBox1.Caption = «CheckBox1.Value = « _

& CheckBox1.Value

CheckBox2.Value = Null

CheckBox2.Caption = «CheckBox2.Value = « _

& CheckBox2.Value

CheckBox3.Value = True

CheckBox3.Caption = «CheckBox3.Value = « _

& CheckBox3.Value

End Sub

Интересно было посмотреть, какое значение отобразится в надписи элемента управления 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:

Private Sub UserForm_Initialize()

  With CheckBox1

    .Caption = «Нажмите на меня»

    .ControlSource = «A1»

    .Value = False

    .Left = 12

    .Top = 12

  End With

End Sub

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

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

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

‘Устанавливаем первоначальные

‘значения свойств «Флажка»

Private Sub UserForm_Initialize()

  With CheckBox1

    .Caption = «Поставьте галочку»

    .Value = False

    .TripleState = False

  End With

End Sub

‘Меняем надпись «Флажка» при

‘смене параметра CheckBox1.Value

Private Sub CheckBox1_Change()

  If CheckBox1.Value Then

    CheckBox1.Caption = «Снимите галочку»

  Else

    CheckBox1.Caption = «Поставьте галочку»

  End If

End Sub

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

‘Устанавливаем первоначальные

‘значения свойств элементов управления

Private Sub UserForm_Initialize()

  With CheckBox1

    .Caption = «Хочу сложить два числа»

    .Value = False

    .TripleState = False

  End With

  With TextBox1

    .Enabled = False

    .Text = «Слагаемое 1»

  End With

  With TextBox2

    .Enabled = False

    .Text = «Слагаемое 2»

  End With

  With CommandButton1

    .Caption = «Сложить»

    .Visible = False

  End With

End Sub

‘Меняем свойства других элементов

‘управления при смене состояния «Флажка»

Private Sub CheckBox1_Change()

  If CheckBox1.Value Then

    TextBox1.Enabled = True

    TextBox2.Enabled = True

    CommandButton1.Visible = True

  Else

    TextBox1.Enabled = False

    TextBox2.Enabled = False

    CommandButton1.Visible = False

  End If

End Sub

‘Складываем два числа

Private Sub CommandButton1_Click()

  If IsNumeric(TextBox1) And IsNumeric(TextBox2) Then

    MsgBox TextBox1 & » + « & TextBox2 & » = « _

    & CDbl(TextBox1) + CDbl(TextBox2)

  End If

End Sub

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

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


 

ton bon

Пользователь

Сообщений: 31
Регистрация: 01.01.1970

Здравствуйте уважаемые гуру!

Есть элемент управления checkbox (или флажок) на листе. Как запустить макрос при изменении состояния этого элемента управления?

Большое спасибо!

 

смотря какой флажок
их 2
одному (флажок) назначается готовый макрос
у второго (CheckBox) по ПКМ есть пункт «Исходный текст»

Изменено: Александр Моторин28.01.2021 13:56:27

 

Mershik

Пользователь

Сообщений: 8277
Регистрация: 03.12.2015

#3

28.01.2021 14:15:33

ton bon,

Код
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
    'ваш макрос если установленая галочка
    MsgBox "Активировано"
Else
    'действие если не установленая галочка
End If
End Sub

http://scriptcoding.ru/2013/08/29/vba-checkbox/

Не бойтесь совершенства. Вам его не достичь.

 

ton bon

Пользователь

Сообщений: 31
Регистрация: 01.01.1970

Mershik, спасибо! Это должно быть вставлено в код листа?

И одно уточнение. Если макрос один и тот же, независимо от того, стоит галочка или нет, то можно как-нибудь упростить?

 

ton bon

Пользователь

Сообщений: 31
Регистрация: 01.01.1970

#5

28.01.2021 14:57:31

Цитата
ton bon написал:
Это должно быть вставлено в код листа?

Извините, спасибо, разобрался по Вашей ссылке. Просто в макрос флажка записываем Call действие! Одна строчка! Спасибо еще раз!

 

Mershik

Пользователь

Сообщений: 8277
Регистрация: 03.12.2015

#6

28.01.2021 14:58:20

ton bon,

Цитата
ton bon написал:
Это должно быть вставлено в код листа?

можете туда (только название должно соответствен checkbox)

Цитата
ton bon написал:
Если макрос один и тот же, независимо от того, стоит галочка или нет, то можно как-нибудь упростить?

не понял?  зачем тогда использовать checkbox сделайте кнопку которая и будет запускать макрос

Не бойтесь совершенства. Вам его не достичь.

Иногда возникают ситуации, когда нужно включать или отключать активную кнопку  при помощи галочки в поле чек бокса.

Выглядит это примерно, как отметка о согласии с лицензионным соглашением при установке программ — если стоит галочка возле надписи «Согласен» , кнопка «Далее>>»  активна, в противном случае кнопка не активна.

Кнопки активации

Кнопки активации

Рассмотрим, как создать макрос, который будет активировать или  деактивировать кнопку.

Для начала следует создать кнопку «CommandButton1» и чек-бокс активации «CheckBox1» на поле «UserFom1».

UserForm1

UserForm1

Кнопку назовем «Далее>>», а чек бокс подпишем, как «Активация кнопки».

Запись макроса на чек-бокс

Запись макроса на чек-бокс

В свойствах кнопки  выставляем:  Enabled — False

Enabled False

Enabled False

Как записать макрос на действия с Чек-боксом (CheckBox1) .

Шаг 1. Кликаем по CheckBox1 правой кнопкой мыши.

Шаг 2. Выбираем из выпадающего меню пункт «View Code» (показать код).

Шаг 3. В появившемся поле записываем код.

Код активации кнопки:

Private Sub CheckBox1_Click() ‘ клик по кнопке

If UserForm1.CheckBox1.Value = True Then UserForm1.CommandButton1.Enabled = True Else UserForm1.CommandButton1.Enabled = False ‘проверяет значение Чек-бокса и включает кнопку

End Sub

Макрос готов — кнопка активируется по флажку в чекбоксе.

Использование элементов управления Checkbox для скрытия и отображения строк

В прикреплённом файле — 3 варианта реализации:

  • с использованием CheckBox с панели инструментов «Элементы управления»
  • с использованием CheckBox с панели инструментов «Формы»
  • без использования Checkbox — галочки (отметки) ставятся макросом
    (с использованием шрифта Marlett)

Для каждого из вариантов использованы свои макросы, скрывающие и отображающие строки
(в первых двух вариантах требуется ещё и скрывать сами чекбоксы)

В третьем варианте для скрытия строк применён автофильтр.

  • 33062 просмотра

Не получается применить макрос? Не удаётся изменить код под свои нужды?

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

Содержание

  • Установка флажка
    • Способ 1: вставка через меню «Символ»
    • Способ 2: подмена символов
    • Способ 3: установка галочки в чекбоксе
    • Способ 4: создание чекбокса для выполнения сценария
    • Способ 5: установка галочки с помощью инструментов ActiveX
  • Вопросы и ответы

Галочка в Microsoft Excel

В программе Microsoft Office пользователю иногда нужно вставить галочку или, как по-другому называют этот элемент, флажок (˅). Это может быть выполнено для различных целей: просто для пометки какого-то объекта, для включения различных сценариев и т.д. Давайте выясним, как установить галочку в Экселе.

Установка флажка

Существует несколько способов поставить галочку в Excel. Для того чтобы определиться с конкретным вариантом нужно сразу установить, для чего вам нужна установка флажка: просто для пометки или для организации определенных процессов и сценариев?

Урок: Как поставить галочку в Microsoft Word

Способ 1: вставка через меню «Символ»

Если вам нужно установить галочку только в визуальных целях, чтобы пометить какой-то объект, то можно просто воспользоваться кнопкой «Символ» расположенной на ленте.

  1. Устанавливаем курсор в ячейку, в которой должна располагаться галочка. Переходим во вкладку «Вставка». Жмем по кнопке «Символ», которая располагается в блоке инструментов «Символы».
  2. Переход к символам в Microsoft Excel

  3. Открывается окно с огромным перечнем различных элементов. Никуда не переходим, а остаемся во вкладке «Символы». В поле «Шрифт» может быть указан любой из стандартных шрифтов: Arial, Verdana, Times New Roman и т.п. Для быстрого поиска нужного символа в поле «Набор» устанавливаем параметр «Буквы изменения пробелов». Ищем символ «˅». Выделяем его и жмем на кнопку «Вставить».

Выбор символа в Microsoft Excel

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

Символ вставлен в Microsoft Excel

Таким же образом можно вставить более привычную нам галочку с непропорциональными сторонами или галочку в чексбоксе (небольшой квадратик, специально предназначенный для установки флажка). Но для этого, нужно в поле «Шрифт» указать вместо стандартного варианта специальный символьный шрифт Wingdings. Затем следует опуститься в самый низ перечня знаков и выбрать нужный символ. После этого жмем на кнопку «Вставить».

Вставка дополнительных символов в Microsoft Excel

Выбранный знак вставлен в ячейку.

Дополнительный символ вставлен в Microsoft Excel

Способ 2: подмена символов

Есть также пользователи, которые не задаются точным соответствием символов. Поэтому вместо того, чтобы установить стандартную галочку, просто печатают с клавиатуры символ «v» в англоязычной раскладке. Иногда это оправдано, так как этот процесс занимает очень мало времени. А внешне эта подмена практически незаметна.

Установка галочки в виде буквы в Microsoft Excel

Lumpics.ru

Способ 3: установка галочки в чекбоксе

Но для того, чтобы статус установки или снятия галочки запускал какие-то сценарии, нужно выполнить более сложную работу. Прежде всего, следует установить чекбокс. Это такой небольшой квадратик, куда ставится флажок. Чтобы вставить этот элемент, нужно включить меню разработчика, которое по умолчанию в Экселе выключено.

  1. Находясь во вкладке «Файл», кликаем по пункту «Параметры», который размещен в левой части текущего окна.
  2. Переход в параметры в Microsoft Excel

  3. Запускается окно параметров. Переходим в раздел «Настройка ленты». В правой части окна устанавливаем галочку (именно такую нам нужно будет установить на листе) напротив параметра «Разработчик». В нижней части окна кликаем по кнопке «OK». После этого на ленте появится вкладка «Разработчик».
  4. Включение режима разработчика в Microsoft Excel

  5. Переходим в только что активированную вкладку «Разработчик». В блоке инструментов «Элементы управления» на ленте жмем на кнопку «Вставить». В открывшемся списке в группе «Элементы управления формы» выбираем «Флажок».
  6. Выбор флажка в Microsoft Excel

  7. После этого курсор превращается в крестик. Кликаем им по той области на листе, где нужно вставить форму.
    Курсор в Microsoft Excel

    Появляется пустой чекбокс.

  8. Чекбокс в Microsoft Excel

  9. Для установки в нем флажка нужно просто кликнуть по данному элементу и флажок будет установлен.
  10. Флажок установлен в Microsoft Excel

  11. Для того, чтобы убрать стандартную надпись, которая в большинстве случаев не нужна, кликаем левой кнопкой мыши по элементу, выделяем надпись и жмем на кнопку Delete. Вместо удаленной надписи можно вставить другую, а можно ничего не вставлять, оставив чекбокс без наименования. Это на усмотрение пользователя.
  12. Удаление надписи в Microsoft Excel

  13. Если есть потребность для создания нескольких чекбоксов, то можно не создавать для каждой строки отдельный, а скопировать уже готовый, что значительно сэкономит время. Для этого сразу выделяем форму кликом мыши, затем зажимаем левую кнопку и перетягиваем форму в нужную ячейку. Не бросая кнопку мыши, зажимаем клавишу Ctrl, а затем отпускаем кнопку мышки. Аналогичную операцию проделываем и с другими ячейками, в которые нужно вставить галочку.

Копирование чекбоксов в Microsoft Excel

Способ 4: создание чекбокса для выполнения сценария

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

  1. Создаем чекбокс по алгоритму, описанному в предыдущем способе, с использованием вкладки разработчика.
  2. Кликаем по элементу правой кнопкой мыши. В контекстном меню выбираем пункт «Формат объекта…».
  3. Переход в формат объекта в Microsoft Excel

  4. Открывается окно форматирования. Переходим во вкладку «Элемент управления», если оно было открыто в другом месте. В блоке параметров «Значения» должно быть указано текущее состояние. То есть, если галочка на данный момент установлена, то переключатель должен стоять в позиции «Установлен», если нет – в позиции «Снят». Позицию «Смешанное» выставлять не рекомендуется. После этого жмем на пиктограмму около поля «Связь с ячейкой».
  5. Формат элемента управления в Microsoft Excel

  6. Окно форматирования сворачивается, а нам нужно выделить ячейку на листе, с которой будет связан чекбокс с галочкой. После того, как выбор произведен, повторно жмем на ту же кнопку в виде пиктограммы, о которой шла речь выше, чтобы вернутся в окно форматирования.
  7. Выбор ячеки в Microsoft Excel

  8. В окне форматирования жмем на кнопку «OK» для того, чтобы сохранить изменения.
    Сохранение изменений в окне форматирования в Microsoft Excel

    Как видим, после выполнения данных действий в связанной ячейке при установленной галочке в чекбоксе отображается значение «ИСТИНА». Если галочку убрать, то будет отображаться значение «ЛОЖЬ». Чтобы выполнить нашу задачу, а именно произвести смену цветов заливки, нужно будет связать эти значения в ячейке с конкретным действием.

  9. Значения в ячейки в Microsoft Excel

  10. Выделяем связанную ячейку и кликаем по ней правой кнопкой мыши, в открывшемся меню выбираем пункт «Формат ячеек…».
  11. Переход в формат ячеек в Microsoft Excel

  12. Открывается окно форматирования ячейки. Во вкладке «Число» выделяем пункт «Все форматы» в блоке параметров «Числовые форматы». Поле «Тип», которое расположено в центральной части окна, прописываем следующее выражение без кавычек: «;;;». Жмем на кнопку «OK» в нижней части окна. После этих действий видимая надпись «ИСТИНА» из ячейки исчезла, но значение осталось.
  13. Формат ячеек в Microsoft Excel

  14. Снова выделяем связанную ячейку и переходим во вкладку «Главная». Жмем на кнопку «Условное форматирование», которая размещена в блоке инструментов «Стили». В появившемся списке кликаем по пункту «Создать правило…».
  15. Переход в окно условного форматирования в Microsoft Excel

  16. Открывается окно создания правила форматирования. В его верхней части нужно выбрать тип правила. Выбираем самый последний в списке пункт: «Использовать формулу для определения форматируемых ячеек». В поле «Форматировать значения, для которых следующая формула является истиной» указываем адрес связанной ячейки (это можно сделать как вручную, так и просто выделив её), а после того, как координаты появились в строке, дописываем в неё выражение «=ИСТИНА». Чтобы установить цвет выделения, жмем на кнопку «Формат…».
  17. Окно создания правила в Microsoft Excel

  18. Открывается окно форматирования ячеек. Выбираем цвет, которым хотели бы залить ячейку при включении галочки. Жмем на кнопку «OK».
  19. Выбор цвета заливки в Microsoft Excel

  20. Вернувшись в окно создания правила, жмем на кнопку «OK».

Сохранение настроек в Microsoft Excel

Теперь при включенной галочке связанная ячейка будет окрашиваться в выбранный цвет.

Ячейка при включенной галочке в Microsoft Excel

Если галочка будет убрана, то ячейка снова станет белой.

Ячейка при отключенной галочке в Microsoft Excel

Урок: Условное форматирование в Excel

Способ 5: установка галочки с помощью инструментов ActiveX

Галочку можно установить также при помощи инструментов ActiveX. Данная возможность доступна только через меню разработчика. Поэтому, если эта вкладка не включена, то следует её активировать, как было описано выше.

  1. Переходим во вкладку «Разработчик». Кликаем по кнопке «Вставить», которая размещена в группе инструментов «Элементы управления». В открывшемся окне в блоке «Элементы ActiveX» выбираем пункт «Флажок».
  2. Включение галочки через ActiveX в Microsoft Excel

  3. Как и в предыдущий раз, курсор принимает особую форму. Кликаем им по тому месту листа, где должна размещаться форма.
  4. Установка курсора в Microsoft Excel

  5. Для установки галочки в чекбоксе нужно войти в свойства данного объекта. Кликаем по нему правой кнопкой мыши и в открывшемся меню выбираем пункт «Свойства».
  6. Переход в свойства ActiveX в Microsoft Excel

  7. В открывшемся окне свойств ищем параметр «Value». Он размещается в нижней части. Напротив него меняем значение с «False» на «True». Делаем это, просто вбивая символы с клавиатуры. После того, как задача выполнена, закрываем окно свойств, нажав на стандартную кнопку закрытия в виде белого крестика в красном квадрате в верхнем правом углу окна.

Свойства ActiveX в Microsoft Excel

После выполнения этих действий галочка в чекбоксе будет установлена.

Галочка установлена с помощью ActiveX в Microsoft Excel

Выполнение сценариев с использованием элементов ActiveX возможно при помощи средств VBA, то есть, путем написания макросов. Конечно, это намного сложнее, чем использование инструментов условного форматирования. Изучение этого вопроса – отдельная большая тема. Писать макросы под конкретные задачи могут только пользователи со знанием программирования и обладающие навыками работы в Эксель гораздо выше среднего уровня.

Для перехода к редактору VBA, с помощью которого можно будет записать макрос, нужно кликнуть по элементу, в нашем случае по чекбоксу, левой кнопкой мыши. После этого будет запущено окно редактора, в котором можно выполнять написание кода выполняемой задачи.

Редактор VBA в Microsoft Excel

Урок: Как создать макрос в Excel

Как видим, существует несколько способов установить галочку в Экселе. Какой из способов выбрать, в первую очередь зависит от целей установки. Если вы хотите просто пометить какой-то объект, то нет смысла выполнять задачу через меню разработчика, так как это займет много времени. Намного проще использовать вставку символа или вообще просто набрать на клавиатуре английскую букву «v» вместо галочки. Если же вы хотите с помощью галочки организовать выполнение конкретных сценариев на листе, то в этом случае данная цель может быть достигнута только с помощью инструментов разработчика.

Skip to content

Excel VBA UserForm CheckBox

  • Excel VBA UserForm CheckBox

CheckBox is one of the UserForm control. You can select and drag CheckBox on the UserForm. CheckBox Control is used to specify or indicate binary choice. That is either Turn on or off a value. When we use more checkboxs, you can select more than one CheckBox at a time on the UserForm. You can select multiple check boxes in a group box. Please find more details about CheckBox Control in the following chapter.

  • VBA CheckBox Control on the UserForm
  • Add dynamic CheckBox Control on the UserForm using VBA
  • Select or UnSelect a CheckBox using VBA
  • Check if a check box is selected or not using VBA
  • More details about Checkbox control

VBA ActiveX CheckBox Control on the UserForm

    1. Go To Developer Tab and then click Visual Basic from the Code or Press Alt+F11.
    2. Go To Insert Menu, Click UsereForm. Please find the screenshot for the same.

Excel VBA UserForm CheckBox

    1. Drag a check box on the Userform from the Toolbox. Please find the screenshot for the same.

AxtiveX Checkbox Control1

    1. Now, you can see the following code.
Private Sub CheckBox1_Click()

End Sub

Note: In the above code ‘CheckBox1’ is the Check box name.

    1. Please add the following statements to the procedure.
Private Sub CheckBox1_Click()
    If UserForm2.CheckBox1.Value = True Then
       MsgBox "Checkbox has Checked", , "Checkbox"
    Else
       MsgBox "Checkbox has UnChecked", , "Checkbox"
    End If
End Sub
  1. Run the above macro by pressing F5.
  2. Check and uncheck the check box twice to get the two different outputs.

Add dynamic CheckBox Control on the UserForm using VBA

Please find the following steps and example code, it will show you how to add dynamic checkbox control on the userform.

    1. Add command button on the userform from the toolbox.
    2. Right click on the command button, click properties
    3. Change the command button caption to ‘Create_Checkbox’
    4. Double click on the command button
    5. Now, it shows following code.
Private Sub CommandButton1_Click()
 
End Sub
    1. Call the below procedure named ‘Add_Dynamic_Checkbox’ and find the below procedure to run.
Private Sub CommandButton1_Click()
    Call Add_Dynamic_Checkbox
End Sub

Procedure to call in the Command Button:

Sub Add_Dynamic_Checkbox()
    'Add Dynamic Checkbox and assign it to object 'Cbx'
    Set Cbx = UserForm2.Controls.Add("Forms.CheckBox.1")
    
    'Assign Checkbox Name
    Cbx.Caption = "Checkbox2"
    
    'Checkbox Position
    Cbx.Left = 10
    Cbx.Top = 10
End Sub  
    1. Now, click F5 to run the macro, click ‘Create_Checkbox’ button to see the result.
    2. You can see the created dynamic check box in the following screen shot.

output:

Dynamic Checkbox

Select or UnSelect a CheckBox using VBA?

Please find the below code to know how to select or UnSelect a check box using VBA. In the below example we are using value property of the check box to select or UnSelect a check box.

‘ To select check box 
CheckBox1.Value=True

‘ To unselect check box 
CheckBox1.Value=False

Check if a check box is selected or not using VBA

Please find the below code to know how to check if a check box is selected or not using VBA. In the below example we are using value property of the check box.

Sub ChkBox_Ex1()
If CheckBox1.Value = True Then  
MsgBox “CheckBox has selected”
Else
MsgBox “CheckBox has not selected”
End If
End Sub

More details about Check box control

Here is the link more about how to add check box control on the Worksheet or UserForm in Excel.
Read More …

Here is the one more link to more about how to add check box control on the Worksheet or UserForm using VBA in Excel.
Read More …

Here is the one more link to more about how to remove check box control on the Worksheet or UserForm in Excel.
Read More …

Effortlessly Manage Your Projects and Resources
120+ Professional Project Management Templates!

A Powerful & Multi-purpose Templates for project management. Now seamlessly manage your projects, tasks, meetings, presentations, teams, customers, stakeholders and time. This page describes all the amazing new features and options that come with our premium templates.

Save Up to 85% LIMITED TIME OFFER
Excel VBA Project Management Templates
All-in-One Pack
120+ Project Management Templates
Essential Pack
50+ Project Management Templates

Excel Pack
50+ Excel PM Templates

PowerPoint Pack
50+ Excel PM Templates

MS Word Pack
25+ Word PM Templates

Ultimate Project Management Template

Ultimate Resource Management Template

Project Portfolio Management Templates
      • In this topic:
  • VBA ActiveX CheckBox Control on the UserForm
  • Add dynamic CheckBox Control on the UserForm using VBA
      • Procedure to call in the Command Button:
  • Select or UnSelect a CheckBox using VBA?
  • Check if a check box is selected or not using VBA
  • More details about Check box control

VBA Reference

Effortlessly
Manage Your Projects

120+ Project Management Templates

Seamlessly manage your projects with our powerful & multi-purpose templates for project management.

120+ PM Templates Includes:
By PNRaoLast Updated: March 2, 2023

Effectively Manage Your
Projects and  Resources

With Our Professional and Premium Project Management Templates!

ANALYSISTABS.COM provides free and premium project management tools, templates and dashboards for effectively managing the projects and analyzing the data.

We’re a crew of professionals expertise in Excel VBA, Business Analysis, Project Management. We’re Sharing our map to Project success with innovative tools, templates, tutorials and tips.

Project Management
Excel VBA

Download Free Excel 2007, 2010, 2013 Add-in for Creating Innovative Dashboards, Tools for Data Mining, Analysis, Visualization. Learn VBA for MS Excel, Word, PowerPoint, Access, Outlook to develop applications for retail, insurance, banking, finance, telecom, healthcare domains.

Analysistabs Logo

Page load link

VBA Projects With Source Code

3 Realtime VBA Projects
with Source Code!

Take Your Projects To The Next Level By Exploring Our Professional Projects

Go to Top

Return to VBA Code Examples

In VBA, you can create a CheckBox where a user can check or uncheck the option. Checkboxes are often used in UserForms, but can also be used in a Worksheet. In this tutorial, you will learn how to create a Checkbox (in both VBA and in Excel Worksheets), get a user choice in VBA and use it in code.

If you want to learn how to create a Listbox, click here: VBA Listbox

If you want to learn how to create a Combobox, click here: VBA Combobox

Create a Checkbox

In order to insert a Checkbox in the Worksheet, you need to go to the Developer tab, click Insert and under ActiveX Controls choose Check Box:

Vba Insert Checkbox

When you select the Checkbox which you inserted, you can click on Properties under the Developer tab:

Vba Checkbox Properties

Here you can set different properties of the Checkbox. First, we changed the attribute Name to cmbCheckbox. Next, we can use the Checkbox with this name in VBA code.

Also, we changed the text which appears next to the checkbox to Agree with Terms. To do this, you need to set the attribute Caption.

Get a Selected Item of a Checkbox in VBA

The purpose of a Checkbox is to get a user’s choice (checkbox checked or not). In order to retrieve a value that is selected by user, you need to use this code:

If Sheet1.cmbCheckBox.Value = True Then
    Sheet1.Range("C3") = "Agree"
Else
    Sheet1.Range("C3") = "Don't agree"
End If

We want to populate the cell C3 with Agree if the checkbox is checked and Don’t agree otherwise. The value of the checkbox is in the Value attribute of the object Sheet1.cmbCheckbox. The value of the checkbox can be true or false.

Vba Checkbox Get Value

As we checked the checkbox, the value of Sheet1.cmbCheckbox.Value is true, so the result in C3 is Agree.

Use a Checkbox in a UserForm

As we mentioned, Checkboxes are most often used in UserForms. To explain how you can do it, we will first insert an Userform. In the VBA Editor, right-click on Module name, click on Insert and choose UserForm:

Vba Checkbox Insert Userform

To display controls for inserting, you need to enable the Toolbox. To do this, click on the Toolbox icon in the toolbar. After that, you will get the windows with all the controls available. You can click on Checkbox to create it in the Userform:

Vba Checkbox in Userform Properties

In the properties window, we will change the name of the Checkbox to chbCheckBox and caption to Agree with Terms. When we run the Userform, we get the Checkbox in it.

Vba Checkbox in Userform

If you want to get selected value from the Checkbox, you need to use the same logic for the Checkbox in a Worksheet, which is explained earlier in the article.

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
vba save as

Learn More!

Подскажите дальнейшие манипуляции с добавленными чекбоксами.

Итак по примерам выше добавил n чекбоксов на форму. При добавлении давал .name = «ChBox» & i

А как теперь к ним обращаться? Например кнопка «выделить все» как должна работать?

Private Sub BtnCheckAll_Click ()
Dim i As Integer
For i=1 To ChBoxCount ‘ переменная Public ChBoxCount определена при создании чекбоксов
<??? — обратиться к i-му чекбоксу>.Value=True
Next i
End Sub

2-я задача — написать обработчики событий для этих чекбоксов

p.s. А еще можно объяснить что означает 1 в строке Controls.Add(«Forms.CheckBox.1») ?

Добавлено через 52 минуты
Так, с выделением всего нашел как решить

Visual Basic
1
2
3
4
5
6
7
8
Private Sub BtnCheckAll_Click()
    Dim x As Control
    
    For Each x In Frame1.Controls 'у меня все CheckBox'ы на фрейме
        x.Value = True
    Next
    
End Sub

Теперь осталось выяснить про обработчик событий. Например «Click»

Visual Basic
1
2
3
Private Sub ChBox1_Click()
msgbox "Клик на ChBox1"
End Sub

не работает. Ошибок нет, но и действий никаких

<<Lesson 21>> [Contents] <<Lesson 23>>

There are many Excel VBA controls that can be used to perform certain tasks by writing Excel VBA code for them. These controls are also known as Active-X controls. These controls are Excel VBA objects so they have their own properties, methods and events. They can be found on the Excel Control Toolbox, as shown in theFigure 17.1. We shall deal with the checkbox, the textbox and the option button.

vba_Figure18.1

Figure 22.1

22.1 The CheckBox

The Checkbox is a very useful control in Excel VBA. It allows the user to select one or more items by checking the check box or check boxes concerned. For example, you may create a shopping cart where the user can click on check boxes that correspond to the items they intend to buy, and the total payment can be computed at the same time.One of the most important properties of the checkbox is Value. If the check box is selected or checked, the value is true, whilst if it is not selected or unchecked, the Value is False.
The usage of the checkbox is illustrated in Example 22.1

Example 22.1

In this example, the user can choose to display the sale volume of one type of fruits sold or total sale volume. The code is shown below:

Private Sub CommandButton1_Click()

If CheckBox1.Value = True And CheckBox2.Value = False Then
MsgBox “Quantity of apple sold is” & Cells (2, 2).Value
ElseIf CheckBox2.Value = True And CheckBox1.Value = False Then
MsgBox “Quantity of orange sold is ” & Cells(2, 3).Value
Else
MsgBox “Quantity of Fruits sold is” & Cells (2, 4).Value
End If

End Sub

The Interface is shown in Figure 22.2

vba_Figure18.2

Figure 22.2

22.2 The TextBox

The TextBox is the standard Excel VBA control for accepting input from the user as well as to display the output. It can handle string (text) and numeric data but not images.

Example 22.2

In this example, we inserted two text boxes and display the sum of numbers entered into the two text boxes in a message box. The Val function is used to convert the string into numeric values because the text box treats the number entered as a string.

Private Sub CommandButton1_Click ()
Dim x As Variant, y As Variant, z As Variant
x = TextBox1.Text
y = TextBox2.Text
z = Val(x) + Val(y)
MsgBox “The Sum of ” & x & ” and ” & y & ” is ” & z
End Sub

vba_Figure18.3

Figure 17.3

22.3 The Option Button

The option button control also lets the user selects one of the choices. However, two or more option buttons must work together because as one of the option buttons is selected, the other option button will be deselected. In fact, only one option button can be selected at one time. When an option button is selected, its value is set to “True” and when it is deselected; its value is set to “False”.

Example 22.3

This example demonstrates the usage of the option buttons. In this example, the Message box will display the option button selected by the user. The output interface is shown in Figure 22.4.

The code

Private Sub OptionButton1_Click ()

MsgBox “Option 1 is selected”
End Sub
Private Sub OptionButton2_Click()
MsgBox “Option 2 is selected”
End Sub
Private Sub OptionButton3_Click()
MsgBox “Option 3 is selected”

End Sub

The Output Interface

vba_Figure18.4

<<Lesson 21>> [Contents] <<Lesson 23>>

Понравилась статья? Поделить с друзьями:
  • Макрос для форматирования текста в excel
  • Макрос для форматирования таблиц в word
  • Макрос для форматирования таблиц в excel
  • Макрос для флажка excel
  • Макрос для условного форматирования в excel