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

Создание кнопки в excel для макросов

Рассмотрим несколько вариантов создания кнопок в Excel для запуска какой-нибудь процедуры. Для примера напишем простую процедуру, которая будет присваивать текстовой значение ячейки равным «Привет, мир!»

Переходим на вкладку Разработчик (о том как добавить ее вы можете узнать из статьи о вкладках в Excel ) и нажимаем иконку Visual Basic (либо можно воспользоваться комбинацией клавиш Alt+F11).

Откроет окно Microsoft Visual Basic for Applications. Создадим модуль.

В левой области окна Project – VBAProject нажимаем правую кнопку мыши на Microsoft Excel Objects – Insert – Module

В открывшемся окне пишем процедуру:

Далее переходим на лист Excel.

Создание кнопки через картинку или изображение

Создадим на листе простой прямоугольник с надписью «Кнопка». Нажимаем по нему правой кнопкой мыши и выбираем пункт назначить макрос.

В открытом окне программа предложит список макросов со всех открытых книг. В моем случае открыта только одна книга и в не всего один макрос «Привет». Выделяем его и нажимаем ОК.

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

Создание кнопки элемент управления формой

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

Добавляем элемент: переходим на вкладку Разработчик – Вставить – Выбираем элемент кнопка:

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

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

Создание кнопки ActiveX на листе и форме.

Как и в предыдущем примере нажимаем на вкладке Разработчик иконку вставить, но теперь выбираем кнопку элемент ActiveX:

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

Далее на панели инструментов нажимаем свойства:

Сейчас нас интересует свойство Caption – именно оно отвечает за надпись на кнопке. Атрибут Name отвечает за обращение к кнопке в коде процедуры, давайте тоже изменим, напишем просто Btn1 (использовать только латинские буквы).

Далее на панели инструментов в блоке элементы управления нажимаем Просмотр кода или просто двойной щелчок левой кнопкой мыши на кнопке, и переходим в код процедуры:

Пишем код для запуска процедуры с названием Привет, которую мы создали в самом начале:

Все, кнопка создана, можно проверять (не забудьте перед проверкой отключить режим конструктора).

Кнопка на форме создается аналогично, только сперва создадим форму. Переходим в окно VBA (ALT+F11). Нажимаем правой кнопкой мыши на Microsoft Excel Objects – Insert – UserForm

По умолчанию вызвался инструмент Toolbox из которого мы должны добавить кнопку CommandButton. Вставляем ее на форму и сразу изменим имя. Это делается точно также, как и со случаем кнопки ActiveX на листе, только сейчас для того, чтобы выбрать свойства нажимает правой клавишей на кнопке и выбираем Properties:

Также изменяем свойство Caption на Кнопка, а свойство Name на Btn1. Далее заходим в код кнопки – двойной щелчок на кнопке. Пишем в коде процедуры Call Привет:

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

Свойство Name созданной формы имеет значение UserForm1 (это легко проверить, зайдя в свойства (Properties) самой формы). Для того, чтобы выводить форму, теперь заходим в код кнопки на листе (режим конструктора должен быть включен). И меняем Call Привет на UserForm1.Show вот так:

Все проверяем. Нажимаем кнопку на листе (перед этим отключаем режим конструктора):

Источник: excelinfo.ru

Microsoft Excel

трюки • приёмы • решения

Как правильно использовать Элементы управления «Поле» и «Надпись» в VBA Excel

Наряду с кнопкой очень часто используются элементы ввода данных. Здесь в первую очередь следует рассмотреть элемент управления «Поле» (рис. 1.15). На его пиктограмме нанесены буквы ab. Данный элемент более известен под названием Текстовое окно, что подчеркивает его функциональность (элемент предназначен для ввода текста с клавиатуры). Это связано с его англоязычным названием — TextBox. В связи с этим далее по тексту мы будем использовать более соответствующее смыслу название данного элемента управления — текстовое окно.

Рис. 1.15. Размещение поля (текстового окна) на рабочем листе

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

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

  • Btn — кнопка;
  • Txb — текстовое окно;
  • Lbl — надпись.

Рис. 1.16. Размещение на листе надписи, кнопки и текстового окна

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

Нас интересует событие, связанное с изменением содержания текстового окна, поэтому дважды щелкнем в текстовом окне. В результате перед вами автоматически открывается новое окно редактора Visual Basic, которое показано на рис. 1.17. В его правой части расположен раздел, предназначенный для написания программного кода, где мы и будем писать строки программы. Здесь в верхней части присутствует два списка (каждый из которых открывается щелчком на стрелке). Левый список (в данном случае в нем указано имя текстового окна — Txb) содержит перечень объектов, которые нам доступныпри программировании. Правый список включает в себя возможные события, связанные с объектом, который предварительно выбран в левом списке. Таким образом, мы будем использовать технологию
событийного программирования.

Рис. 1.17. Окио редактора Visual Basic

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

Читайте также:  Сводная таблица в эксель

Нас сейчас интересует событие, связанное с вводом информации в текстовое окно. Оно происходит, когда мы добавляем очередной символ в текстовое окно (или удаляем из него). Таким образом, в левом списке (см. рис. 1.17) следует выбрать Txb, а затем в правом — Change (изменение). В результате этого в окне редактора Visual Basic перед нами откроется текст процедуры, которая будет автоматически выполняться при изменениях в текстовом окне (вводе либо удалении символов).

Начало рассматриваемой процедуры определяется строкой Private Sub Txb_Change () , а завершение — End Sub. Здесь Txb_Change ( ) — имя процедуры, которое формируется автоматически из двух составляющих: Txb (имя объекта, которое мысами ему присвоили) и Change. Подобные процедуры называются предопределенными — они объективно существуют и выполняются всегда при совершении определенного действия. В данном случае описываемая процедура выполняется автоматически, когда происходит изменение в текстовом окне. Существуют и другие процедуры, к которым непосредстветпю обращаются программным путем (вызовы процедур располагаются в тексте программного кода).

Возможем и другой способ перехода в окно редактора кода — для этого следует воспользоваться пиктограммой Visual Basic (рис. 1.16).

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

Рис. 1.18. Процедура, выполняемая при изменениях в текстовом окне

Конструкция Lbl.Caption говорит о том, что у объекта с именем Lbl рассматривается свойство Caption. Значение этого свойства определяет текст, который располагается в надписи. Знак равенства и последующая фраза говорят о том, что рассматриваемому свойству присваивается значение Txb.Text.

На данном этапе мы на рабочем листе Microsoft Excel создали необходимые элементы управления (надпись, кнопку и текстовое окно) и написали текст процедуры, выполняемой при изменении текста в текстовом окне. Теперь можно перейти из редактора Visual Basic на лист Microsoft Excel, выйти из режима конструктора и проверить работу начать набирать текст в окне. В этом случае вы увидите результат, подобный показанному на рис. 1.19.

Рис. 1.19. Результат ввода текста в текстовое окно

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

//Листинг 1.1. Обработка щелчка на кнопке Очистка Private Sub Btn_Click () Lbl.Caption = “” Txb.Text = “” End Sub

Для автоматического переноса длинного текста в текстовом окне со строки на строку для свойства MultiLine следует установить значение True. Альтернативным вариантом значения указанного свойства является False (в этом случае текст будет размещаться в окне только в одной строке, и при длинном фрагменте в текстовом окне будет видна только его часть).

Значение свойства Text определяет информацию, которая присутствует в текстовом окне. И, таким образом, изменения в текстовом окне автоматически будут отражаться в надписи.

Для автоматического переноса длинного текста в текстовом окне со строки на строку для свойства MultiLine следует установить значение True.

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

  • расположение на листе элементов ActiveX (элементов управления);
  • присвоение созданным объектам имен и установка необходимых значений для других свойств;
  • разработка процедур, связанных с событиями, относящимися к элементам управления.

Источник: excelexpert.ru

Вопрос 2. Элементы управления Excel.

Рассмотрим использование инструмента Элементы управленияна примере разработки приложения «Регистрация посетителей отеля».

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

Последовательность выполнения:

1. Запустить программу MS Excel. Создать новый файл. Присвоить ему имя «Карточка клиента». Первому рабочему листу присвоить имя «Карточка регистрации».

2. Вызвать панель инструментов Элементы управления формы (Разработчик, Элементы управления, Вставить).

Подготовить карточку регистрации в соответствии с рисунком:

Обеспечить выполнение следующих условий:

·фамилия и имя будут вводиться вручную в ячейки С3, С4;

·для указания продолжительности проживания используется Счетчик;

·пол и тип номера выбираются с помощью элемента управления Переключатель;

·наличие паспорта и заказа завтрака в номер фиксируется Флажками.

·Флажок «Паспорт» связать с ячейкой А20 (правой кнопкой на счетчике – Формат объекта – Элемент управления – Связать с ячейкой), «Завтрак» – с А21, счетчик «Продолжительность проживания» – с В15, переключатели «Пол» – с А22, переключатели «Номер» – с А23.


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

Заполните соответствующие ячейки этой таблицы следующими формулами:

· в Н2: =СЕГОДНЯ();

· в I2: =С3;

· в J2: =ЕСЛИ(I2=””;””;C4);

· в К2:=ЕСЛИ(I2=””;””;ЕСЛИ(А20=ЛОЖЬ;”нет”;”да”));

· в L2:= ЕСЛИ(I2=””;””;ЕСЛИ(А22=1;”муж”;”жен”));

· в N2: ЕСЛИ(I2=””;””;ЕСЛИ(A23=1;”одноместный”;ЕСЛИ(A23= 2;”двухместный”;”люкс”)));

· в Р2: =ЕСЛИ(I2=””;””;ЕСЛИ(N2=”одноместный”;O2*S2;ЕСЛИ (N2=”двухместный”;O2*S3;O2*S4)));

· в Q2: =ЕСЛИ(I2=””;””;ЕСЛИ(L2=”да”;100*O2+P2;P2)).

4. Для того чтобы накапливать информацию о посетителях отеля необходимо создать макрос для копирования строки из промежуточной таблицы на другой лист. Второй рабочий лист переименуем в «База посетителей». Скопируйте шапку промежуточной таблицы с листа «Карточка регистрации» на лист «База посетителей», начиная с ячейки А1.

5. Запишите макрос «Копирование». Ваши действия:

• Перейдите на лист «Карточка регистрации»;

• Выполните команду: Разработчик, Код, Запись Макроса. Присвойте имя макросу «Копирование».

• Выделите диапазон ячеек H2:Q2. Выполните команду Главная, Буфер обмена, Копировать.

• Перейдите на лист «База посетителей». Щелкните по ячейке А2.

• Выполните команду: Главная, Буфер обмена, Вставить, Специальная вставка, Значения.

• Перейдите на лист «Карточка регистрации».

• Дайте команду: Разработчик, Код, Остановить Запись.

• В результате полученный макрос будет иметь вид, который можно просмотреть, дав команду: Разработчик, Код, Макросы, Изменить:

ns = Application.CountA(Sheets(“Карточка регистрации”). Range(“A:A”))

d = “a” & CStr(ns + 1)

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks :=False, Transpose:=False

MsgBox “Копирование прошло успешно”

Жирным шрифтом указаны изменения, которые требуется внести в текст макроса, для того чтобы копирование каждый раз производилось в следующую пустую строку листа «База посетителей». Строка MsgBox «Копирование прошло успешно» – диагностирует правильность выполнения операции копирования.

6. Создайте на листе «Карточка регистрации» кнопку с помощью одноименного элемента управления панели инструментов Элементы управления. Измените надпись на кнопке на Перенос в базу. Привяжите созданный макрос «Копирование» к кнопке: щелчок правой кнопкой мыши по кнопке, выбор в контекстном меню Назначить макрос, выбор «Копирование».

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

Sub Очистка фамилии()

Читайте также:  Сжать excel файл онлайн

8. Создайте на листе «Карточка регистрации» кнопку, измените надпись на кнопке на Очистка фамилии. Привяжите созданный макрос «Очистка фамилии» к кнопке.

Дата добавления: 2016-07-27 ; просмотров: 2710 ;

Источник: poznayka.org

Создание кнопки в excel для макросов

Рассмотрим несколько вариантов создания кнопок в Excel для запуска какой-нибудь процедуры. Для примера напишем простую процедуру, которая будет присваивать текстовой значение ячейки равным «Привет, мир!»

Переходим на вкладку Разработчик (о том как добавить ее вы можете узнать из статьи о вкладках в Excel ) и нажимаем иконку Visual Basic (либо можно воспользоваться комбинацией клавиш Alt+F11).

Откроет окно Microsoft Visual Basic for Applications. Создадим модуль.

В левой области окна Project – VBAProject нажимаем правую кнопку мыши на Microsoft Excel Objects – Insert – Module

В открывшемся окне пишем процедуру:

Далее переходим на лист Excel.

Создание кнопки через картинку или изображение

Создадим на листе простой прямоугольник с надписью «Кнопка». Нажимаем по нему правой кнопкой мыши и выбираем пункт назначить макрос.

В открытом окне программа предложит список макросов со всех открытых книг. В моем случае открыта только одна книга и в не всего один макрос «Привет». Выделяем его и нажимаем ОК.

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

Создание кнопки элемент управления формой

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

Добавляем элемент: переходим на вкладку Разработчик – Вставить – Выбираем элемент кнопка:

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

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

Создание кнопки ActiveX на листе и форме.

Как и в предыдущем примере нажимаем на вкладке Разработчик иконку вставить, но теперь выбираем кнопку элемент ActiveX:

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

Далее на панели инструментов нажимаем свойства:

Сейчас нас интересует свойство Caption – именно оно отвечает за надпись на кнопке. Атрибут Name отвечает за обращение к кнопке в коде процедуры, давайте тоже изменим, напишем просто Btn1 (использовать только латинские буквы).

Далее на панели инструментов в блоке элементы управления нажимаем Просмотр кода или просто двойной щелчок левой кнопкой мыши на кнопке, и переходим в код процедуры:

Пишем код для запуска процедуры с названием Привет, которую мы создали в самом начале:

Все, кнопка создана, можно проверять (не забудьте перед проверкой отключить режим конструктора).

Кнопка на форме создается аналогично, только сперва создадим форму. Переходим в окно VBA (ALT+F11). Нажимаем правой кнопкой мыши на Microsoft Excel Objects – Insert – UserForm

По умолчанию вызвался инструмент Toolbox из которого мы должны добавить кнопку CommandButton. Вставляем ее на форму и сразу изменим имя. Это делается точно также, как и со случаем кнопки ActiveX на листе, только сейчас для того, чтобы выбрать свойства нажимает правой клавишей на кнопке и выбираем Properties:

Также изменяем свойство Caption на Кнопка, а свойство Name на Btn1. Далее заходим в код кнопки – двойной щелчок на кнопке. Пишем в коде процедуры Call Привет:

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

Свойство Name созданной формы имеет значение UserForm1 (это легко проверить, зайдя в свойства (Properties) самой формы). Для того, чтобы выводить форму, теперь заходим в код кнопки на листе (режим конструктора должен быть включен). И меняем Call Привет на UserForm1.Show вот так:

Все проверяем. Нажимаем кнопку на листе (перед этим отключаем режим конструктора):

Источник: excelinfo.ru

Лабораторная работа по и нформатике: ПРИМЕНЕНИЕ ЭЛЕМЕНТОВ УПРАВЛЕНИЯ В EXCEL

При пользовании «Инфоуроком» вам не нужно платить за интернет!

Минкомсвязь РФ: «Инфоурок» включен в перечень социально значимых ресурсов .

Лабораторная работа № 5

ПРИМЕНЕНИЕ ЭЛЕМЕНТОВ УПРАВЛЕНИЯ

В EXCEL

1. Используя элементы управления «Переключатель» и «Рамка» составить формулу для нахождения суммы всех, положительных или отрицательных значений из диапазона ячеек A10:D11, в зависимости от установки переключателей.

Для выполнения задания необходимо:

Вывести панель инструментов ФОРМА.

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

Ввести название этого переключателя, например «Положительные».

Повторить последние два шага для размещения переключателей «Отрицательные» и «Все».

Выбрать элемент управления «Рамка» и перенести его на лист Ехcel таким образом, чтобы он охватывал, ранее построенные переключатели. Ввести название группы – «Суммировать».

Щелкните правой кнопкой мыши по любому из переключателей и из контекстного меню выберите «Формат объекта» и установите связь между переключателями и ячейкой Excel, например A1;

Ввести формулу вычисляющую требуемую сумму.

Используемые функции: ECЛИ, СУММЕСЛИ, СУММ.

Примерный вид решения задачи:

2. Используя элементы управления «Флажок» и «Рамка», для ввода исходных данных, решить предыдущую задачу

3. Используя элементы управления «СЧЕТЧИК» и «ПОЛЕ СО СПИСКОМ», для ввода исходных данных, построить календарь на заданный год и месяц, который должен иметь примерно следующий вид:

Для выполнения задания необходимо:

Вывести панель инструментов ФОРМА.

Перенести и расположить элементы управления «СЧЕТЧИК» и «ПОЛЕ на листе Excel.

Связать элементы управления с ячейками Excel.

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

Используемые функции: ECЛИ, МЕСЯЦ, ДАТА, ДЕНЬНЕД

4. Построить календарь на заданный месяц указанного года, используя элементы управления «ПОЛОСА ПРОКРУТКИ» и «СПИСОК», для ввода необходимых исходных данных. Дни недели расположить по вертикали, начиная с понедельника.

5. Составить макрокоманду, изменяющую в выделенном диапазоне размер и тип шрифта, цвет и обрамляющую диапазон. Обеспечить возможность выполнения построенной макрокоманды с помощью меню, панели инструментов, клавиатуры и с помощью элемента управления «КНОПКА»

Бесплатный
Дистанционный конкурс “Стоп коронавирус”

1. Используя элементы управления «Переключатель» и «Рамка» составить формулу для нахождения суммы всех, положительных или отрицательных значений из диапазона ячеек A10:D11, в зависимости от установки переключателей.

Для выполнения задания необходимо:

– Вывести панель инструментов ФОРМА.

– Перенести элемент управления «Переключатель»на лист Excel и установить желаемые размеры. Сверху от переключателя должно остаться свободное место. Оно понадобится при объединении переключателей в группу.

– Ввести название этого переключателя, например «Положительные».

Читайте также:  Excel руководство пользователя для начинающих

– Повторить последние два шага для размещения переключателей «Отрицательные» и «Все».

– Выбрать элемент управления «Рамка» и перенести его на лист Ехcel таким образом, чтобы он охватывал, ранее построенные переключатели. Ввести название группы – «Суммировать».

– Щелкните правой кнопкой мыши по любому из переключателей и из контекстного меню выберите «Формат объекта» и установите связь между переключателями и ячейкой Excel, например A1;

– Ввести формулу вычисляющую требуемую сумму.

Используемые функции: ECЛИ, СУММЕСЛИ, СУММ.

Источник: infourok.ru

Обзор различий между элементами управления формы и элементами ActiveX в Excel

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

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

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

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

1 ответов

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

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

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

описание:

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

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

элементы управления формы являются частью формы коллекция (так же, как объекты рисования), и, таким образом, называются как: worksheet * ** . Shapes(” ** * controlname * ** “) **’ src=”http://askdev.ru/images/content/50144020/3e3bf34df9396085ac4af348a864568e.png”>

элементы управления ActiveX в основном являются частью рабочего листа и поэтому называются как:
worksheet * ** . ** * controlname *” src=”http://askdev.ru/images/content/50144020/a1e35432b60fdec1f6ffd6a1168c3545.png”>

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

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

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

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

Управления

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

чтобы удалить назначенное событие, удалите его имя из и нажмите кнопку OK .

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

чтобы переименовать, изменить или удалить существующие макросы, нажмите Alt + ф8 открыть Macro интерфейс:

события элемента управления ActiveX

элементы управления ActiveX есть более обширный список событий, на которые они могут быть настроены для ответа.

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

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

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

события также могут использоваться в элементах управления в userforms. Поскольку только элементы управления ActiveX могут быть размещены в пользовательской форме, у вас будет компромисс” больше кодирования + больше функциональности”.

элементы управления ActiveX добавляются в userforms так же, как они добавляются в рабочий лист. Имейте в виду, что любые события, назначенные userform (ie., фон) будет “заблокирован” в любых областях, покрытых элементом управления, поэтому вам может потребоваться назначить те же события элементам управления, а также userform.

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

Источник: askdev.ru