Как назначить макросы на флажок в excel
Перейти к содержимому

Как назначить макросы на флажок в excel

Как в офисе.

Сегодня мы научимся создавать в MS Excel «чеклист» или, если по-русски, список дел. Список дел в Excel — с этим вы наверняка уже сталкивались в попытках организовать работу. Обычно люди выделяют цветом сделанные/несделанные дела, «зачеркивают» пункты списка. но все это слишком долго, да и просто неудобно.

Гораздо проще все это можно реализовать с помощью «галочек» — установки и снятия т.н. «флажков». Ну, а чтобы все не было так просто, мы сделаем наш список дел более функциональным: снабдим внутренним счетчиком и счетчиком выполнения задач.

Расставляем флажки в MS Excel

Сначала создадим простейшую таблицу со списком дел. Затем перейдем на вкладку «Разработчик» и в группе «Элементы управления» активируем инструмент «Вставка» и выберем пункт «Флажок». Как только флажок окажется помещенным на листе, сотрите ненужную подпись и поставьте его в выбранную ячейку.

Использование

Теперь протяните ячейку с флажком за уголок до конца «списка дел», и такие же «флажки» появятся во всех остальных ячейках столбца. Итак шаблончик будущего списка дел готов — можно даже щелкать по флажкам уже сейчас, расставляя галочки. только вот удовольствия и пользы от этого никакого, верно? Давайте её добавим!

Протягиваем ячейку MS Excel, чтобы заполнить все другие ячейки столбца тем же содержимым

Заготовка списка дел в MS Excel

Список дел с зависимостями в MS Excel

Щелкаем правой кнопкой мыши по первому элементу-флажку, и выбираем самый нижний пункт из выпадающего меню: «Формат объекта».

Список дел с в экселе

В появившемся окне «Форматирование объекта» щелкните в поле «Связь с ячейкой», а затем, щелкните на соседнюю ячейку справа от текущей. Тот же фокус нужно проделать для всех остальных флажков, создав пары с соседней ячейкой.

Создаем связь с ячейкой в MS Excel

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

связанные ячейки таблицы эксель

Функция СЧЕТЕСЛИ

Ну а теперь немого функций и математики. В «список дел» я добавляю ещё 2 строки: число задач вообще, и число задач, которые уже выполнены. Обе строи заполняются данными автоматически, а помогает им в этом встроенная Excel-функция СЧЕТЕСЛИ. Работает она просто:

=СЧЁТЕСЛИ( диапазон_ячеек ; критерий_работы )

Как посчитать все выполненные задачи? Задать в качестве критерия работы функции положение «ИСТИНА» в третьей колонке (как вы помните, положение зависит от того — стоит галочка или нет).

А как посчитать все задачи (и выполненные и невыполненные) сразу? Сначала посчитать по отдельности количество значений «ЛОЖЬ» и «ИСТИНА», а затем сложить результат.

Считаем задачи в нашем excel-списке дел

В общем и целом, наш список дел или список задач на день построенный в MS Excel, уже готов. Нужно только немного украсить его и сделать более опрятным.

Итоговый список задач в MS Excel

Первым делом скройте столбец «С» (истина/ложь), чтобы он не загромождал вид таблицы. А во вторых, давайте добавим «общий критерий эффективности», то есть ещё одно поле — «можно ли переходить к следующему плану?». Ёжику понятно, что переходить к следующему плану можно только после того, как выполнены все задания нынешнего. Или, перефразируя с языка логики на язык математики: когда пункты «всего задач» и «задач выполнено» нашего списка, равны друг другу!

Воспользуемся простой функцией условием =ЕСЛИ() и зададим исходные данные:

=ЕСЛИ(B8=B7 ; «Да» ; «НЕТ»)

Расшифровывается это просто: если значения равны, то вывести в ячейке слово «ДА», если не равны, «НЕТ». А результат будет выглядеть как у меня на примере ниже.

Готовый список задач сделанный в MS Excel.

Обратите внимание только на одну деталь — зеленый цвет ячейки и белый цвет текста в ней. Эти элементы также не мои художества, а результат работы MS Excel, а вернее, принципов условного форматирования, о чем мы говорили с вами в одном из прошлых уроков.

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

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

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

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

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

Кроме состояний «выбран» или «не выбран», существует и третье состояние флажка: серая галочка на сером фоне. Получить такое состояние на пользовательской форме можно путем присвоения свойству 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:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *