Найти в Дзене
VBA Excel с нуля

VBA Excel № 143 Использование элементов управления на рабочем листе

Скриншот с моего ноутбука
Скриншот с моего ноутбука

Так чем же отличаются: элементы управления формы и элементы ActiveX? Давайте разбираться.

Добавление элементов управления на рабочий лист – это задача, которая может оказаться сложной из-за различных источников, из которых они могут поступать. Эти элементы могут происходить из двух основных источников: элементов управления формы и элементов управления ActiveX. На представленном ниже скриншоте отображается рабочий лист, содержащий некоторые элементы управления ActiveX.

📌 Этот файл - пример, можно скачать в конце статьи. Файл включает связанные ячейки и не содержит макросов (хотя сохранён как файл с поддержкой макросов).

Скриншот с моего ноутбука
Скриншот с моего ноутбука

Элементы управления формы представляют собой внедряемые объекты, в то время как элементы управления ActiveX являются подмножеством элементов, доступных в пользовательских диалоговых окнах. Хотя можно использовать элементы управления, принадлежащие любому из этих источников, важно понимать различия между ними.

Скриншот с моего ноутбука
Скриншот с моего ноутбука

Элементы управления пользовательскими диалоговыми окнами функционируют по-другому, чем элементы управления ActiveX. После добавления элемента управления ActiveX на рабочий лист Excel переходит в режим конструктора, где можно настраивать свойства элемента, добавлять или изменять процедуры обработки событий и изменять его размер или положение. Для доступа к окну свойств элемента управления ActiveX следует воспользоваться командой "Разработчик" -> "Элементы управления" -> "Свойства". Для примера, при добавлении элемента управления флажком (OptionButton) на рабочий лист, его можно связать с определенной ячейкой, установив свойство LinkedCell. Когда флажок установлен, в связанной ячейке отображается значение "ИСТИНА". Если флажок снят, то в этой ячейке отображается значение "ЛОЖЬ".

Скриншот с моего ноутбука
Скриншот с моего ноутбука
Для создания простых кнопок можно воспользоваться элементом управления Button (Кнопка), доступным на панели инструментов Формы. В этом случае можно запускать макросы.

Скриншот с моего ноутбука
Скриншот с моего ноутбука

Однако, используя элемент управления CommandButton, относящийся к элементам управления ActiveX, при двойном щелчке на нем вызывается связанная процедура обработки событий, находящаяся в модуле кода объекта Лист.

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

Если Excel находится в режиме конструктора, тестирование элементов управления невозможно. Для выхода из режима конструктора следует щелкнуть на кнопке "Разработчик" -> "Элементы управления" -> "Режим конструктора".

Скриншот с моего ноутбука
Скриншот с моего ноутбука
Эта кнопка "Режим конструктора" работает как переключатель между режимами.

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

СКАЧАТЬ ФАЙЛ ПРИМЕР