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

Чтобы добавить флажок или переключатель, вам понадобится вкладка Разработчик на ленте.
Примечания: Чтобы добавить вкладку «Разработчик», выполните следующие действия:
- В Excel 2010 и последующих версиях выберите Параметры >файлов >настройка ленты, выберите поле Проверка разработчика и нажмите кнопку ОК.
- В Excel 2007 нажмите кнопку Microsoft Office >Параметры Excel >Популярные >показать вкладку Разработчик на ленте.
- Чтобы добавить поле проверка, перейдите на вкладку Разработчик, нажмите кнопку Вставка и в разделе Элементы управления формами выберите .
Чтобы добавить кнопку параметра, перейдите на вкладку Разработчик, нажмите кнопку Вставка и в разделе Элементы управления формами выберите . 
- Выберите ячейку, в которой нужно добавить флажок или переключатель.
Совет: Одновременно можно добавить только один флажок или кнопку параметра. Чтобы ускорить работу, выделите созданный элемент управления и выберите команды Копировать > Вставить.

Совет: Если виден не весь текст, щелкните и перетаскивайте один из маркеров, пока не будет виден весь текст. Размер элемента управления и его расстояние от текста изменить нельзя.
Форматирование элемента управления
После вставки флажка или переключателя желательно проверить, работает ли он нужным образом. Например, может потребоваться настроить его внешний вид или свойства.
Примечание: Размер переключателя внутри элемента управления и его расстояние от текста невозможно изменить.

- Чтобы отформатировать элемент управления, щелкните его правой кнопкой мыши и выберите пункт Формат элемента управления.
- В диалоговом окне Формат элемента управления на вкладке Элемент управления можно изменить следующие параметры:
- установлен: отображает выбранный переключатель.
- снят: отображает невыбранный переключатель.
- В поле Связь с ячейкой введите ссылку на ячейку, в которой содержится текущее состояние переключателя. Связанная ячейка возвращает номер выбранного переключателя в группе параметров. Для всех параметров в группе нужно использовать одну связанную ячейку. Для первого переключателя возвращается 1, для второго — 2 и т. д. Если на одном листе есть несколько групп переключателей, используйте для них отдельные связанные ячейки. Возвращенное число можно использовать в формуле для реагирования на выбранный параметр. Например, на форме сотрудника в группе Тип занятости есть два переключателя (Полная и Частичная), связанные с ячейкой C1. Когда пользователь выбирает один из них, формула в ячейке D1 использует значение «Полная», если установлен первый переключатель, или «Частичная», если выбран второй переключатель. =IF(C1=1,»Full-time»,»Part-time») Если нужно оценить более двух параметров в одной группе, для этого можно использовать функции ВЫБОР или ПРОСМОТР.
- Нажмите кнопку ОК.
Удаление элемента управления
- Щелкните элемент управления правой кнопкой мыши и нажмите клавишу DELETE.
В настоящее время в Excel в Интернете нельзя использовать проверка элементы управления box. Если вы работаете в Excel в Интернете и открываете книгу с проверка полями или другими элементами управления (объектами), вы не сможете изменить книгу, не удалив эти элементы управления.
Важно: Если появится сообщение «Изменить в браузере» или «Неподдерживаемые функции» и вы решили изменить книгу в браузере, все объекты, такие как проверка поля, поля со списком, немедленно теряются. Если это происходит и вы хотите вернуть эти объекты, используйте предыдущие версии для восстановления более ранней версии.
Если у вас есть классическое приложение Excel, выберите Открыть в Excel и добавьте проверка поля или кнопки параметров.
Дополнительные сведения
Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.
Как в excel сделать чекбокс в ячейке
Страницы: 1
Формула для чекбоксов?
Пользователь
Сообщений: 329 Регистрация: 28.07.2009
17.12.2010 12:09:44
Здравствуйте гуру и другие форумчане.
Вчера открыл для себя Чекбоксы на листе, работающие без макросов. А сегодня решил их применить, но упёрся и не могу сдвинуться. Файлик прилагаю.
Ответ-то, как мне кажется, где-то на поверхности, но не могу до него додуматься.
Есть четыре чекбокса. Ставя на них галочки, должны появляться наименования этих чекбоксов.
В макросах это просто — пробегаешь по всем чекбоксам на форме, если стоит галка — значит добавляешь, не стоит галка, пропускаешь, если галка одна, то нет точки с запятой, если галок больше одной, то между значениями точка с запятой.
А вот как это сделать без макроса?
Я попробовал, но получается много «если» и «и», а Эксель, насколько я знаю, допускает не больше 7-ми вложенных если.
Вопрос, как быть?
Прикрепленные файлы
- post_184744.xls (18 КБ)
покупка
Вставляя флажки в ячейки в Excel, вы можете заметить, что сложно расположить все флажки так, как показано на левом снимке экрана. Фактически, вы можете переместить все флажки в центр ячейки, чтобы аккуратно держать их в порядке. Метод, описанный в этой статье, может вам помочь.

Флажок Автоцентр в ячейке с кодом VBA
Чтобы автоматически центрировать все флажки в ячейках на текущем листе, сделайте следующее.
1. На листе вам нужно автоматически центрировать все флажки, нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окно, пожалуйста, нажмите Вставить > Модули. Затем скопируйте и вставьте код VBA в окно кода.
Код VBA: автоматически центрировать все флажки в ячейках
Sub CenterCheckbox () Dim xRg As Range Dim chkBox As OLEObject Dim chkFBox As CheckBox On Error Resume Next Application.ScreenUpdating = False For Each chkBox In ActiveSheet.OLEObjects If TypeName(chkBox.Object) = "CheckBox" Then Set xRg = chkBox.TopLeftCell chkBox.Width = xRg.Width * 2 / 3 chkBox.Height = xRg.Height chkBox.Left = xRg.Left + (xRg.Width - chkBox.Width) / 2 chkBox.Top = xRg.Top + (xRg.Height - chkBox.Height) / 2 End If Next For Each chkFBox In ActiveSheet.CheckBoxes Set xRg = chkFBox.TopLeftCell chkFBox.Width = xRg.Width * 2 / 3 chkFBox.Height = xRg.Height chkFBox.Left = xRg.Left + (xRg.Width - chkFBox.Width) / 2 chkFBox.Top = xRg.Top + (xRg.Height - chkFBox.Height) / 2 Next Application.ScreenUpdating = True End Sub
3. нажмите F5 ключ. Затем все флажки сразу перемещаются в центр ячеек, как показано на скриншоте ниже.

Внимание: Этот код VBA может применяться как к CheckBox (элемент управления ActiveX), так и к CheckBox (элемент управления формой).
Наконечник: Если вы хотите вставить несколько флажков в выбранный диапазон сразу, вы можете попробовать Флажки пакетной вставки утилита pf Kutools for Excel. Или пакетно вставьте несколько опциональных кнопок с Кнопки параметров пакетной вставки утилита. Кроме того, вы можете удалить сразу все флажки с помощью Флажки пакетного удаления утилита, как показано на скриншотах ниже. Ты можешь пойти в бесплатно скачать программное обеспечение без ограничений в 30 дня .

Статьи по теме:
- Как создать выпадающий список с несколькими флажками в Excel?
- Как изменить указанное значение или цвет ячейки при установленном флажке в Excel?
- Как выделить ячейку или строку с помощью флажка в Excel?
- Как установить флажок на основе значения ячейки в Excel?
Как в excel сделать чекбокс в ячейке
Есть фаил в нем ячейки с галочками для выбора работ, как мне их скопировать вниз по столбцу 1000+ раз?
Есть фаил в нем ячейки с галочками для выбора работ, как мне их скопировать вниз по столбцу 1000+ раз? omsk29091988
К сообщению приложен файл: 9254708-2.xlsx (27.6 Kb)
Сообщение Есть фаил в нем ячейки с галочками для выбора работ, как мне их скопировать вниз по столбцу 1000+ раз? Автор — omsk29091988
Дата добавления — 11.09.2021 в 18:29
Группа: Проверенные
Ранг: Ветеран
Сообщений: 509
Замечаний: 0% ±
Excel 2013/2016
Цитата omsk29091988, 11.09.2021 в 18:29, в сообщении № 1 ( )
как мне их скопировать вниз по столбцу 1000+ раз?
На всякий случай повторюсь, что вы можете скопировать из просто протянув вниз, Но, как я уже написал ВНУТРЕННИЕ адреса этих чекбоксов надо менять вручную. Например чекбокс в ячейке А2 прилинкован (прилинкован означает, что отмечая его галочкой он меняет значение этой ячейки с ЛОЖЬ на ИСТИНА) к ней и его внутренний адрес конкретно А2. При копировании вниз этот адрес к сожалению НЕ МЕНЯЕТСЯ и делать это надо вручную, или макросом (код ниже). Код этот начинает менять адреса с самой первой ячейки А1, а вам надо с А2, поскольку в ячейке А1 у вас текст. Может кто шарит в макросах согласится подправить его.
[vba]
Sub LinkCheckBoxes()
Dim chk As CheckBox
Dim lCol As Long
lCol = 0 ‘number of columns to the right for link
For Each chk In ActiveSheet.CheckBoxes
With chk
.LinkedCell = _
.TopLeftCell.Offset(0, lCol).Address ‘Начинает замену адресов с ячейки А1, нужно подправить так, чтобы замена начиналась с ячейки А2
End With
Next chk
End Sub
Цитата omsk29091988, 11.09.2021 в 18:29, в сообщении № 1 ( )
как мне их скопировать вниз по столбцу 1000+ раз?
На всякий случай повторюсь, что вы можете скопировать из просто протянув вниз, Но, как я уже написал ВНУТРЕННИЕ адреса этих чекбоксов надо менять вручную. Например чекбокс в ячейке А2 прилинкован (прилинкован означает, что отмечая его галочкой он меняет значение этой ячейки с ЛОЖЬ на ИСТИНА) к ней и его внутренний адрес конкретно А2. При копировании вниз этот адрес к сожалению НЕ МЕНЯЕТСЯ и делать это надо вручную, или макросом (код ниже). Код этот начинает менять адреса с самой первой ячейки А1, а вам надо с А2, поскольку в ячейке А1 у вас текст. Может кто шарит в макросах согласится подправить его.
[vba]
Sub LinkCheckBoxes()
Dim chk As CheckBox
Dim lCol As Long
lCol = 0 ‘number of columns to the right for link
For Each chk In ActiveSheet.CheckBoxes
With chk
.LinkedCell = _
.TopLeftCell.Offset(0, lCol).Address ‘Начинает замену адресов с ячейки А1, нужно подправить так, чтобы замена начиналась с ячейки А2
End With
Next chk
End Sub
Сообщение отредактировал Egyptian — Суббота, 11.09.2021, 18:41
Цитата omsk29091988, 11.09.2021 в 18:29, в сообщении № 1 ( )
как мне их скопировать вниз по столбцу 1000+ раз?
На всякий случай повторюсь, что вы можете скопировать из просто протянув вниз, Но, как я уже написал ВНУТРЕННИЕ адреса этих чекбоксов надо менять вручную. Например чекбокс в ячейке А2 прилинкован (прилинкован означает, что отмечая его галочкой он меняет значение этой ячейки с ЛОЖЬ на ИСТИНА) к ней и его внутренний адрес конкретно А2. При копировании вниз этот адрес к сожалению НЕ МЕНЯЕТСЯ и делать это надо вручную, или макросом (код ниже). Код этот начинает менять адреса с самой первой ячейки А1, а вам надо с А2, поскольку в ячейке А1 у вас текст. Может кто шарит в макросах согласится подправить его.
[vba]
Sub LinkCheckBoxes()
Dim chk As CheckBox
Dim lCol As Long
lCol = 0 ‘number of columns to the right for link
For Each chk In ActiveSheet.CheckBoxes
With chk
.LinkedCell = _
.TopLeftCell.Offset(0, lCol).Address ‘Начинает замену адресов с ячейки А1, нужно подправить так, чтобы замена начиналась с ячейки А2
End With
Next chk
End Sub