Excel элементы управления формы или элементы activex

Примеры форм листа Благодаря формам, а также многочисленным элементам управления и объектам, которые можно в них добавить, значительно упрощается ввод данных в листы и улучшается их внешний вид. Вы также можете делать это самостоятельно, и вам почти или совсем не потребуется код Microsoft Visual Basic для приложений (VBA).

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

Общие сведения о формах

Форма (печатная или веб-версия) — это документ со стандартной структурой и форматированием, который упрощает сбор, у упорядочение и редактирование сведений.

  • Печатаемая форма содержит инструкции, форматирование, наклейки и пустые пробелы для ввода и ввода данных. Для создания печатных Excel и Excel шаблонов.

  • Веб-формы содержат те же функции, что и печатные формы. Кроме того, веб-формы содержат элементы управления. Элементы управления — это объекты, которые отображают данные или упрощают ввод или изменение данных, выполнение действия или выбор данных. Как правило, элементы управления упрощают работу с формой. Примерами часто используемых элементов управления являются списки, переключатели и кнопки. Элементы управления также могут запускать назначенные им макросы и реагировать на события, например щелчки мышью, путем выполнения кода Visual Basic для приложений (VBA).

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

Типы форм Excel

В Excel можно создавать формы нескольких типов: формы данных, листы с элементами управления формы и ActiveX, а также пользовательские формы VBA. Каждый из этих типов формы можно использовать по отдельности или сочетать с другими типами для создания нужного решения.

Форма данных

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

Пример типичной формы данных Excel может автоматически создать встроенную форму данных для диапазон или таблица. Такая форма представляет собой диалоговое окно, в котором все заголовки столбцов отображаются в виде подписей. Каждой подписи соответствует текстовое поле, в которое можно вводить данные для столбца (максимальное количество столбцов — 32). В форме данных можно вводить новые строки, находить строки путем навигации или (на основе содержимого ячейки) обновлять строки и удалять их. Если ячейка содержит формула, ее результат отображается в форме данных, но саму формулу в форме данных изменить нельзя.

Лист с формой и элементами ActiveX

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

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

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

В Excel поддерживаются два типа элементов управления: элементы управления форм и элементы ActiveX. Кроме этих наборов элементов управления, вы также можете добавлять объекты из средств рисования, такие как автофигуры, объект WordArt, графические элементы SmartArt или текстовые поля.

В следующих разделах более подробно описываются элементы управления и средства рисования, а также работа с ними.

Элементы управления формы

Элементы управления формы появились в Excel раньше всего и поддерживаются в предыдущих выпусках Excel (начиная с версии 5.0). Их также можно использовать на листах макросов XLM.

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

С помощью элементов управления формы можно также выполнять макросы. Можно назначить элементу управления существующий макрос либо создать или записать новый. Когда пользователь формы щелкает элемент управления, запускается макрос.

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

Обзор элементов управления формы

Название кнопки

Пример

Описание

Изображение кнопки

Надпись

Пример подписи (элемент управления формы)

Указывает назначение ячейки или текстового поля либо содержит описание (заголовки, подписи, рисунки) или краткие инструкции.

Изображение кнопки

Значок кнопки

Пример группы (элемент управления формы)

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

Изображение кнопки

Изображение кнопки

Пример кнопки (элемент управления формы)

Запуск макроса, который выполняет действие при щелчке пользователем. Кнопка также называется push-кнопкой.

Изображение кнопки

Флажок

Пример флажка (элемент управления формы)

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

Изображение кнопки

Переключатель

Пример переключателя (элемент управления формы)

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

Изображение кнопки

Список

Пример списка (элемент управления формы)

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

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

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

  • Список, разрешающий несвязный выбор нескольких строк, позволяет выбрать один элемент, расположенные рядом элементы, а также разрозненные элементы.

Изображение кнопки

Поле со списком

Пример поля со списком (элемент управления формы)

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

Изображение кнопки

Полоса прокрутки

Пример полосы прокрутки (элемент управления формы)

Используется для прокрутки диапазона значений с помощью кнопок со стрелками или путем перетаскивания ползунка полосы прокрутки. Можно перемещаться по странице значений (с заранее заданным интервалом), щелкая область между ползунком и одной из кнопок со стрелками для прокрутки. Как правило, пользователь также может вводить текст непосредственно в связанную ячейку или текстовое поле.

Изображение кнопки

Счетчик

Пример счетчика (элемент управления формы)

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

Примечание: Следующие элементы управления недоступны в Office Excel 2007 книгах. Эти элементы управления можно использовать только Excel на листах диалогов версии 5.0.

Название кнопки

Изображение кнопки
текстового поля

Изображение кнопки
со списком — редактирование

Изображение кнопкисо #x0 — вниз, редактирование

Изображение кнопки
«Выполнить»

Элементы ActiveX

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

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

На компьютере находятся многочисленные элементы ActiveX, установленные приложением Excel и другими программами, такими как Calendar Control 12.0 и проигрыватель Windows Media.

Важно: Не все элементы ActiveX можно использовать непосредственно на листах; некоторые из них можно применять только к пользовательским формам Visual Basic для приложений (VBA). При попытке добавить такие элементы управления на лист в приложении Excel отображается сообщение «Вставка объекта неосуществима».

Тем не менее элементы ActiveX невозможно добавить на листы диаграмм (с помощью пользовательского интерфейса) или на листы макросов XLM. Кроме того, невозможно назначить макрос, который будет запускаться непосредственно из ActiveX так же, как и для управления формы.

Обзор элементов ActiveX

Название кнопки

Пример

Описание

Изображение кнопки

Флажок

Пример флажка (элемент ActiveX)

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

Изображение кнопки

Текстовое поле

Пример текстового поля (элемент ActiveX)

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

Изображение кнопки

Кнопка

Пример кнопки (элемент ActiveX)

Запуск макроса, который выполняет действие при щелчке пользователем. Кнопка также называется push-кнопкой.

Изображение кнопки

Переключатель

Пример переключателя (элемент ActiveX)

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

Изображение кнопки

Список

Пример списка (элемент ActiveX)

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

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

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

  • Список, разрешающий несвязный выбор нескольких строк, позволяет выбрать один элемент, расположенные рядом элементы, а также разрозненные элементы.

Изображение кнопки

Поле со списком

Пример поля со списком (элемент ActiveX)

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

Изображение кнопки

Выключатель

Пример выключателя (элемент ActiveX)

Указывает на состояние (да/нет) или режим (вкл./выкл.). При нажатии кнопки она меняет свое состояние на противоположное.

Изображение кнопки

Счетчик

Пример счетчика (элемент ActiveX)

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

Изображение кнопки

Полоса прокрутки

Пример полосы прокрутки (элемент ActiveX)

Используется для прокрутки диапазона значений с помощью кнопок со стрелками или путем перетаскивания ползунка полосы прокрутки. Можно перемещаться по странице значений (с заранее заданным интервалом), щелкая область между ползунком и одной из кнопок со стрелками для прокрутки. Как правило, пользователь также может вводить текст непосредственно в связанную ячейку или текстовое поле.

Изображение кнопки

Надпись

Пример подписи (элемент ActiveX)

Указывает назначение ячейки или текстового поля либо содержит описание (заголовки, подписи, рисунки) или краткие инструкции.

Изображение кнопки

Изображение

Пример изображения (элемент ActiveX)

Выводит изображение, например точечный рисунок, JPEG или GIF.

Рамка

Пример рамки (элемент ActiveX)

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

Примечание: Элемент ActiveX рамки не доступен в разделе ActiveX элементов управления команды Вставка. Тем не менее его можно добавить из диалогового окна Другие элементы, выбрав пункт Рамка Microsoft Forms 2.0.

Изображение кнопки

Другие элементы

Выводит список доступных на компьютере элементов ActiveX, которые можно добавить в настраиваемую форму (например, элементы Calendar Control 12.0 или проигрывателя Windows Media). В этом диалоговом окне также можно зарегистрировать пользовательский элемент управления.

Объекты средств рисования

Примеры фигур вы также можете включить в форму графические элементы SmartArt, фигуры, wordArt и текстовые поля. Можно изменять размер и цвет таких объектов, поворачивать, отражать и объединять их, чтобы получать еще более сложные фигуры. Текст, который вы вводите непосредственно в фигуру или надпись, становится частью объекта — при повороте или отражении объекта он также меняет свое положение. В отличие от элементов ActiveX, отдельным словам и знакам в объекте можно назначать различные атрибуты, например размер или начертание шрифта. Кроме того, объектам можно назначать макросы или гиперссылки. Можно даже связать текст в фигуре или надписи с ячейкой листа и динамически выводить обновленные значения.

Работа с элементами управления и объектами на листе

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

  • Управление отображением линий сетки при работе с элементами управления и отключение либо включение вывода линий сетки на готовой форме листа.

  • Выбор или отмена выбора элементов управления с целью указания свойств или дополнительной настройки.

  • Изменение текста элемента управления, например заголовка или подписи.

  • Группировка, копирование, перемещение и выравнивание элементов управления для упорядочения макета формы листа.

  • Изменение размера и форматирования элементов управления для достижения требуемого внешнего вида.

  • Изменение положения или размера элемента управления относительно ячейки.

  • Защита элементов управления и связанных ячеек в соответствии с собственными потребностями.

  • Включение или отключение печати элементов управления вместе с формой листа.

  • Удаление неиспользуемых элементов управления.

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

Определение типа элемента управления на листе

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

  • Если контекстное меню содержит команду Свойства, элемент управления является элементом ActiveX и сейчас используется режим конструктора.

  • Если контекстное меню содержит команду Назначить макрос, это элемент управления формы.

    Совет: Чтобы отобразить правильное shortcut menu для группы box Form control, убедитесь, что вы выбрали периметр, а не внутреннюю часть группы.

  • Если контекстное меню содержит команду Изменить текст, это объект-рисунок.

Пользовательские формы VBA

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

  1. Вставьте пользовательскую форму в проект VBA книги. Для доступа к проекту VBA нужно сначала отобразить редактор Visual Basic (нажмите ALT+F11), а затем в меню Вставка нажать кнопку Пользовательскаяформа.

  2. Создайте процедуру для отображения пользовательской формы.

  3. Добавьте элементы ActiveX.

  4. Измените свойства элементов ActiveX.

  5. Создайте процедуры обработчика событий для элементов ActiveX.

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

Перед созданием пользовательских форм рассмотрите возможность применения встроенных диалоговых окон, доступных в Excel. Они включают функции VBA InputBox и MsgBox, метод Excel InputBox, метод GetOpenFilename, метод GetSaveAsFilename и объект Dialogs объекта Application, который содержит все встроенные диалоговые окна Excel.

Дополнительные сведения можно получить в Центре разработчика Microsoft Office Excel.

К началу страницы

Using Microsoft Excel 2010, I noticed two kind of controls that can be inserted into a document: Form Controls and ActiveX Controls.

enter image description here

What is the difference between them?

pgSystemTester's user avatar

asked Mar 16, 2013 at 21:58

Rubens Mariuzzo's user avatar

Rubens MariuzzoRubens Mariuzzo

28.1k27 gold badges120 silver badges148 bronze badges

3

Google is full of information on this. As Hans Passant said, Form controls are built in to Excel whereas ActiveX controls are loaded separately.

Generally you’ll use Forms controls, they’re simpler. ActiveX controls allow for more flexible design and should be used when the job just can’t be done with a basic Forms control.

Many user’s computers by default won’t trust ActiveX, and it will be disabled; this sometimes needs to be manually added to the trust center. ActiveX is a microsoft-based technology and, as far as I’m aware, is not supported on the Mac. This is something you’ll have to also consider, should you (or anyone you provide a workbook to) decide to use it on a Mac.

answered Mar 18, 2013 at 14:55

StoriKnow's user avatar

6

One major difference that is important to know is that ActiveX controls show up as objects that you can use in your code- try inserting an ActiveX control into a worksheet, bring up the VBA editor (ALT + F11) and you will be able to access the control programatically. You can’t do this with form controls (macros must instead be explicitly assigned to each control), but form controls are a little easier to use. If you are just doing something simple, it doesn’t matter which you use but for more advanced scripts ActiveX has better possibilities.

ActiveX is also more customizable.

answered Sep 4, 2014 at 18:39

John Smith's user avatar

John SmithJohn Smith

7,1636 gold badges48 silver badges61 bronze badges

It’s also worth noting that ActiveX controls only work in Windows, whereas Form Controls will work on both Windows and MacOS versions of Excel.

answered Apr 12, 2018 at 16:52

maciej's user avatar

maciejmaciej

4343 silver badges17 bronze badges

Be careful, in some cases clicking on a Form Control or Active X Control will give two different results for the same macro — which should not be the case. I find Active X more reliable.

answered Mar 1, 2017 at 17:54

JLG's user avatar

1

Совсем не обязательно заваливать место на листе всякими ненужными элементами. Проект в первую очередь должен быть удобным а уже потом красивым. Excel не для цветных прямоугольников с округлыми краями, это в первую очередь электронная таблица для правильных и быстрых результатов.

Именно для удобства были созданы дополнительные графические элементы, чтобы пользователь быстро мог взаимодействовать с приложением. Однако есть элементы Form Controls и ActiveX Controls для выбора, какие использовать?

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

Небольшой пример элементов Form Controls:Button Form Control

Для выделения такого элемента нужно удерживать клавишу Ctrl и нажать по нему левой кнопкой мыши, тогда можно изменить размеры или передвинуть элемент в другое место. Если нажать правую кнопку мыши над элементом и выбрать пункт «Format Control» появится окно настроек, где на вкладке «Control» можно указать диапазон ячеек для получения данных и/или связную ячейку на листе.

Особенности элементов этого типа:

  • Нередактируемый дизайн элементов.
  • Возможность назначить только 1 обработчик события элемента.
  • Предполагают использование связных ячеек для взаимодействия с остальным содержимым.

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

Небольшой пример элемента ActiveX:

ActiveX element

Переключатель «Design Mode» должен быть активен если мы хотим редактировать ActiveX элементы, когда переключатель будет выключен готовые элементы можно будет использовать. Для отображения всех свойств этого графического объекта есть специальная кнопка «Properties» сразу возле переключателя «Design Mode».

Особенности элементов этого типа:

  • Предполагают работу с событиями.
  • Содержат обработчики для всех состояний элемента.
  • Возможность визуального оформления.

Using Microsoft Excel 2010, I noticed two kind of controls that can be inserted into a document: Form Controls and ActiveX Controls.

enter image description here

What is the difference between them?

pgSystemTester's user avatar

asked Mar 16, 2013 at 21:58

Rubens Mariuzzo's user avatar

Rubens MariuzzoRubens Mariuzzo

28.1k27 gold badges120 silver badges148 bronze badges

3

Google is full of information on this. As Hans Passant said, Form controls are built in to Excel whereas ActiveX controls are loaded separately.

Generally you’ll use Forms controls, they’re simpler. ActiveX controls allow for more flexible design and should be used when the job just can’t be done with a basic Forms control.

Many user’s computers by default won’t trust ActiveX, and it will be disabled; this sometimes needs to be manually added to the trust center. ActiveX is a microsoft-based technology and, as far as I’m aware, is not supported on the Mac. This is something you’ll have to also consider, should you (or anyone you provide a workbook to) decide to use it on a Mac.

answered Mar 18, 2013 at 14:55

StoriKnow's user avatar

6

One major difference that is important to know is that ActiveX controls show up as objects that you can use in your code- try inserting an ActiveX control into a worksheet, bring up the VBA editor (ALT + F11) and you will be able to access the control programatically. You can’t do this with form controls (macros must instead be explicitly assigned to each control), but form controls are a little easier to use. If you are just doing something simple, it doesn’t matter which you use but for more advanced scripts ActiveX has better possibilities.

ActiveX is also more customizable.

answered Sep 4, 2014 at 18:39

John Smith's user avatar

John SmithJohn Smith

7,1636 gold badges48 silver badges61 bronze badges

It’s also worth noting that ActiveX controls only work in Windows, whereas Form Controls will work on both Windows and MacOS versions of Excel.

answered Apr 12, 2018 at 16:52

maciej's user avatar

maciejmaciej

4343 silver badges17 bronze badges

Be careful, in some cases clicking on a Form Control or Active X Control will give two different results for the same macro — which should not be the case. I find Active X more reliable.

answered Mar 1, 2017 at 17:54

JLG's user avatar

1

Почему 2 вида управления доступно в Excel? (2 кнопки, 2 поля со Списком, 2 флажка и т. д…)

в чем разница между Формы Контроля и Элементы Управления ActiveX? Какой из них мне использовать?

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

Как работать с каждым типом, и как я могу сказать разница?

1 ответов


существует [вечная] путаница вокруг два типы элементов управления, доступных для Excel-усугубляется контрастным терминология используется различными онлайн-источниками.

это только общий обзор различий между Управления и Элементы Управления ActiveX (на основе моих старых заметок, которые помогли мне, наконец, выяснить различия!) Посетите включенные ссылки для более подробной информации информация о каждом элементе управления, включая код и примеры проектов. ☺

(адаптировано из моего оригинального поста здесь — теперь закрытый)


описание:

  • здесь два типы управления: управления и элементы управления ActiveX:

    • и типы элементов управления могут использоваться на рабочих листах но!—18—>только ActiveX элементы управления можно использовать на пользовательские формы.

    • элементы управления формы являются частью формы коллекция (так же, как объекты рисования), и, таким образом, называются как: *<code>worksheet</code>* **<code>.</code> <code>Shapes("</code>** *<code>controlname</code>* **<code>")</code>**

    • элементы управления ActiveX в основном являются частью рабочего листа и поэтому называются как:
      *<code>worksheet</code>* **<code>.</code>** *<code>controlname</code>*

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

  • некоторые сайты обсуждают также обсудить Форма Сведения. Это не более чем userform сделано специально для ввода данных / манипуляции данными, поэтому было бы разумнее называть их (более знакомыми звучание) «Ввод Данных Userform».

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

    dictionary image: form


два типа Управление

  1. Управления

  2. Элементы Управления ActiveX

эти двое выглядят, ведут себя и управляются одинаково, но не одинаково. (List здесь.)

например, давайте сравним два типа Полей. В некоторых языках программирования сопоставимые элементы управления называются «выпадающее меню» или «выпадающий список». В Excel, у нас есть «Поле Со Списком Управления Формой« и «Поле Со Списком Элементов Управления ActiveX«:

compare control types (нажмите изображение для увеличения.)

» имя по умолчанию » применяется к элементам управления, созданным вручную. Элементы управления, созданные программным способом, не имеют (или не требуют) имени по умолчанию и поэтому должны иметь его назначается сразу после создания.


differences between controls

(источник: мой ответ:)


Контроль Наличия

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

chart of controls

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

  • Office.com : почему отключены команды или элементы управления, связанные с формой на ленте?

  • Office.com : обзор форм, элементов управления формами и элементов ActiveX на листе

  • MSDN:добавить элементы управления в форму пользователя


об элементах ActiveX и связанной с ними безопасности Заботы

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

  • элемент управления ActiveX реализуется как сервер в процессе (обычно небольшой объект), который может использоваться в любом контейнере OLE. Обратите внимание, что полная функциональность элемента управления ActiveX доступна только при использовании в контейнере OLE, предназначенном для управления ActiveX.

  • этот тип контейнера, который называется контейнер управления или контроль объекта, может управлять элементом управления ActiveX с помощью свойств и методов элемента управления и получает уведомления от элемента управления ActiveX в виде событий. На следующем рисунке показано взаимодействие:

    example
    (источник: этой и этой)

Читайте также:

  • Википедия: ActiveX

  • Symantec.com : Обсуждение уязвимостей ActiveX

  • How-To Geek:что такое элементы управления ActiveX и почему они опасны


Кнопки Выбора (Радиокнопки)

в Excel два типа переключателей фактически называются Пуговицы!—19—>. Чтобы еще больше запутать дело:

  • имя элемента управления формы по умолчанию —OptionButton1.

  • имя элемента управления ActiveX по умолчанию —Option Button 1.

хороший способ отличить их-открыть список свойств элемента управления (на ленте под вкладкой разработка или щелкнув правой кнопкой мыши элемент управления и выбрав Properties, или нажав Ф4), потому что ActiveX control имеет гораздо больше опций, чем более простой контроль формы.

опции кнопки и флажки могут быть связаны друг с другом (так что только один вариант может быть выбран из группы), поместив их в общий Группы.

выберите элемент управления и затем, удерживая Ctrl при выборе каждого из других элементов управления, которые вы хотите сгруппировать. Щелкните правой кнопкой мыши элемент управления group box и выберите GroupingGroup.

первые две ссылки ниже являются отдельными наборами инструкций для обработки каждого типа кнопки опции.


ОБРАБОТКА СОБЫТИЙ УПРАВЛЕНИЯ:

события управления формой (Click событие только)

события управления формой могут реагировать только на одно событие:the Click событие. (Подробнее здесь.) Обратите внимание, что этот раздел не применяется к userforms так как они используют только элементы управления ActiveX.

чтобы добавить процедуру для Click событие:

  • Правой Кнопкой Мыши и выберите Assign Macro...

  • в диалоговом окне назначить макрос’:

    • выберите существующую процедуру и нажмите OK, или

    • создайте новую процедуру в VBE, нажав новый..., или

    • запишите новый макрос, нажав запись..., или

    • чтобы удалить назначенное событие, удалите его имя из (ie., фон) будет «заблокирован» в любых областях, покрытых элементом управления, поэтому вам может потребоваться назначить те же события элементам управления, а также userform.

      например, чтобы заставить эту пользовательскую форму ответить на MouseMove везде, тот же код события был применен к userform, текстовые поля, кнопки опций и кадр:

      A userform with controls responding to events


      ПРИМЕРЫ VBA

      добавить/изменить / удалить кнопку управления формой с помощью VBA:

      Sub formControl_add()
          'create form control
          Dim ws As Worksheet: Set ws = ActiveSheet
          With ws.Shapes.AddFormControl(xlOptionButton, 25, 25, 100, 100)
              .Name = "cOptionButton1"  'name control immediately (so we can find it later)
          End With
      End Sub
      
      Sub formControl_modify()
          'modify form control's properties
          Dim ws As Worksheet: Set ws = ActiveSheet
          ws.Shapes("cOptionButton1").Select
          With Selection 'shapes must be Selected before changing
              .Characters.Text = "wxyzabcd"
         End With
      End Sub
      
      Sub formControl_delete()
          'delete form control
          Dim ws As Worksheet: Set ws = ActiveSheet
          ws.Shapes("cOptionButton1").Delete
      End Sub
      
      • формы.Метод AddShape (Excel)

      • Свойства Формы (Excel)

      • Символы (Excel)


      добавить/изменить / удалить кнопку команды ActiveX с помощью VBA:

      Sub activexControl_add()
          'create ActiveX control
          Dim ws As Worksheet: Set ws = ActiveSheet
          With ws.OLEObjects.Add("Forms.CommandButton.1")
              .Left = 25
              .Top = 25
              .Width = 75
              .Height = 75
              .Name = "xCommandButton1" 'name control immediately (so we can find it later)
          End With
      End Sub
      
      Sub activexControl_modify()
          ' modify activeX control's properties
          Dim ws As Worksheet: Set ws = ActiveSheet
          With ws.OLEObjects("xCommandButton1").Object
              .Caption = "abcxyz"
              .BackColor = vbGreen
          End With
      End Sub
      
      Sub activexControl_delete()
          ' delete activeX control
          Dim ws As Worksheet: Set ws = ActiveSheet
          ws.OLEObjects("xCommandButton1").Delete
      End Sub
      
      • OLEObjects.Добавить Метод (Excel)

      • BackColor, ForeColor Свойства (Элементы Управления ActiveX)


      добавление / удаление элементов из поля со списком управления формой:

      Sub ComboBox_addRemoveItems_FormControl()
      
          Dim ws As Worksheet: Set ws = ActiveSheet
      
          'add item to form control combo box
          ActiveWorkbook.Sheets("Sheet1").Shapes("Drop Down 1").ControlFormat.AddItem "abcd"
      
          'remove all items from from form control combo bo
          ActiveWorkbook.Sheets("Sheet1").Shapes("Drop Down 1").ControlFormat.RemoveAllItems
      
      End Sub  
      

      добавление / удаление элементов из ActiveX поле со списком:

      Sub ComboBox_addRemoveItems_ActiveXControl()
      
          Dim ws As Worksheet: Set ws = ActiveSheet
      
          'add items to ActiveX combo box
          ActiveWorkbook.Sheets("Sheet1").ComboBox1.AddItem "abcd"
      
          'remove all items from ActiveX combo box
          ActiveWorkbook.Sheets("Sheet1").ComboBox1.Clear
      
      End Sub  
      

      Дополнительная Информация:

      • Office.com : добавить флажок или переключатель (управления)

      • Office.com : добавить флажок, кнопку опции или кнопку переключения (элементы управления ActiveX)

      • Office.com : обзор форм, элементов управления форм и элементов ActiveX на лист

      • Office.com : выбор с помощью переключателей (флажки и списки)

      • Office.com : добавление, изменение, поиск и удаление строк с помощью формы данных

      • MSDN:члены формы VBA

      • MSDN:Использование ActiveX Управление на листах (офис)

      • Exceldemy:как использовать элементы управления формы в Excel

      • MSDN:использование элементов управления Windows Forms на листах Excel (Visual Studio)

      • Microsoft TechNet:поведение элементов управления ActiveX, встроенных в Office документы

      • Переполнение Стека : в чем разница между «управления» и «элемент ActiveX» в Excel 2010?


Like this post? Please share to your friends:
  • Excel элементы управления скачать
  • Excel элементы управления примеры
  • Excel элементы управления на листе
  • Excel элементы управления группа
  • Excel элементы управления в ячейке