Элемент управления пользовательской формы OptionButton для выбора одной опции из группы и передачи результата в VBA Excel. Свойства переключателя, примеры.
UserForm.OptionButton – это элемент управления пользовательской формы, который используется в группе одноименных элементов и предназначен для передачи в код VBA информации о его выборе или невыборе пользователем: False – переключатель не выбран, True – переключатель выбран.
В VBA Excel элемент управления OptionButton состоит из белого кружка с черной точкой (переключатель выбран) или без нее (переключатель не выбран) и надписи. Надпись расположена справа и реагирует на нажатие мышью так же, как и белый кружок.
В отличие от элемента управления CheckBox, только один OptionButton из группы переключателей может иметь значение True. Для разделения разных групп переключателей друг от друга используются элементы управления Frame (рамки). Все переключатели вне рамок являются одной группой.
Так же, как и элемент управления CheckBox, OptionButton принимает третье состояние при присвоении ему в коде VBA Excel значения Null. Переключатель отображается с серым кружком и серой точкой.
Свойства элемента Переключатель
Свойство | Описание |
---|---|
AutoSize | Автоподбор размера переключателя. True – размер автоматически подстраивается под длину набираемой строки. False – размер элемента управления определяется свойствами Width и Height. |
ControlSource | Ссылка на источник данных для свойства Value. |
ControlTipText | Текст всплывающей подсказки при наведении курсора на OptionButton. |
Enabled | Возможность взаимодействия пользователя с элементом управления. True – взаимодействие включено, False – отключено (цвет переключателя становится серым). |
Font | Шрифт, начертание и размер текста надписи. |
Height | Высота элемента управления. |
Left | Расстояние от левого края внутренней границы пользовательской формы до левого края элемента управления. |
Picture | Добавление изображения вместо текста надписи или дополнительно к нему. |
PicturePosition | Выравнивание изображения и текста в поле надписи. |
TabIndex | Определяет позицию элемента управления в очереди на получение фокуса при табуляции, вызываемой нажатием клавиш «Tab», «Enter». Отсчет начинается с 0. |
TextAlign* | Выравнивание текста надписи: 1 (fmTextAlignLeft) – по левому краю, 2 (fmTextAlignCenter) – по центру, 3 (fmTextAlignRight) – по правому краю. |
Top | Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края элемента управления. |
Value | Значение переключателя: True – включен, False – выключен, Null – серый кружок с серой точкой. |
Visible | Видимость элемента OptionButton. True – элемент отображается на пользовательской форме, False – скрыт. |
Width | Ширина элемента управления. |
WordWrap | Перенос текста надписи на новую строку при достижении границы ее поля. True – перенос включен, False – перенос выключен. |
* При загруженной в поле надписи картинке свойство TextAlign не работает, следует использовать свойство PicturePosition.
Свойство по умолчанию для элемента OptionButton – Value, основное событие – Click.
В таблице перечислены только основные, часто используемые свойства переключателя. Все доступные свойства отображены в окне Properties элемента управления OptionButton.
Примеры кода VBA с OptionButton
Пример 1
Отображение элементов управления OptionButton на пользовательской форме с параметрами, заданными в коде VBA Excel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
Private Sub UserForm_Initialize() With Me .Width = 160 .Height = 110 .Caption = «Пьедестал почета» End With With OptionButton1 .Caption = «1 место» .Value = True .Width = 60 .Height = 18 .Left = 60 .Top = 18 .Font.Size = 10 End With With OptionButton2 .Caption = «2 место» .Value = False .Width = 60 .Height = 18 .Left = 12 .Top = 36 .Font.Size = 10 End With With OptionButton3 .Caption = «3 место» .Value = False .Width = 60 .Height = 18 .Left = 90 .Top = 48 .Font.Size = 10 End With End Sub |
Разместите на пользовательской форме три переключателя с именами OptionButton1, OptionButton2, OptionButton3 и добавьте в модуль формы представленный выше код. Запуск этого кода отобразит следующую форму:
Пример 2
Управление доступностью двух групп переключателей, заключенных в рамки, с помощью двух управляющих элементов OptionButton, расположенных непосредственно на пользовательской форме.
Для этого создадим следующий проект формы в редакторе VBA Excel («Рыбы» и «Птицы» большими буквами – это значения свойств Caption рамок Frame1 и Frame2):
В модуль формы вставляем следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
‘Присвоение исходных значений ‘свойствам элементов управления ‘перед отображением формы Private Sub UserForm_Initialize() OptionButton1.Value = False OptionButton2.Value = False OptionButton3.Enabled = False OptionButton4.Enabled = False OptionButton5.Enabled = False OptionButton6.Enabled = False OptionButton7.Enabled = False OptionButton8.Enabled = False Frame1.Enabled = False Frame2.Enabled = False End Sub ‘Смена значений свойств переключателей, ‘расположенных в рамке Frame1, ‘при смене значения OptionButton1.Value Private Sub OptionButton1_Change() If OptionButton1.Value Then Frame1.Enabled = True With OptionButton3 .Value = False .Enabled = True End With With OptionButton4 .Value = False .Enabled = True End With With OptionButton5 .Value = False .Enabled = True End With Else Frame1.Enabled = False With OptionButton3 .Value = False .Enabled = False End With With OptionButton4 .Value = False .Enabled = False End With With OptionButton5 .Value = False .Enabled = False End With End If End Sub ‘Смена значений свойств переключателей, ‘расположенных в рамке Frame2, ‘при смене значения OptionButton2.Value Private Sub OptionButton2_Change() If OptionButton2.Value Then Frame2.Enabled = True With OptionButton6 .Value = False .Enabled = True End With With OptionButton7 .Value = False .Enabled = True End With With OptionButton8 .Value = False .Enabled = True End With Else Frame2.Enabled = False With OptionButton6 .Value = False .Enabled = False End With With OptionButton7 .Value = False .Enabled = False End With With OptionButton8 .Value = False .Enabled = False End With End If End Sub |
При запуске пользовательской формы или процедуры UserForm_Initialize()
откроется форма с неактивными переключателями в рамках Frame1 и Frame2. Нажатие мышью на элементы управления OptionButton с надписями «Рыбы» и «Птицы» будет активировать группу переключателей в одноименных рамках.
In VBA, you can create an Option button to enable a user to choose from several options. An Option button is often used in UserForms, but can also be used in a Worksheet. In this tutorial, you will learn how to create an Option button, get a user choice in VBA and use it in code.
If you want to learn how to create a Checkbox, click here: VBA Checkbox
Create an Option Button
In order to insert an Option button in the Worksheet, you need to go to the Developer tab, click Insert and under ActiveX Controls choose Option button:
Image 1. Insert an Option button in the Worksheet
When you select the Option button which you inserted, you can click on Properties under the Developer tab:
Image 2. Change the Option button Properties
Here you can set different properties of the Option button. For the beginning, we changed the attribute Name to optOptionButton1. Now, we can use the Option button with this name in VBA code.
Also, we changed the text which appears next to the Option button to Male. To do this, you need to set the attribute Caption.
As we want to allow a user to choose gender, we will repeat the whole process for another Option button. The second one has name optOptionButton2, while the caption is Female. You can also create a new Option button by copying the existing one and changing properties. Now our Worksheet has two option buttons:
Image 3. Insert the second Option button
Get a Selected Option Button in VBA
The purpose of an Option button is to get a users decision. We will show in the example how to write Male in the cell C3 if the Option button 1 is chosen or Female if the second one is chosen. Every Option button has its event which triggers when its chosen – Click.
Therefore, for the first Option button we need to put the following code in the event Click of the object optOptionButon1:
Private Sub optOptionButton1_Click()
If Sheet1.optOptionButton1.Value = True Then
Sheet1.Range("C3") = "Male"
End If
End Sub
Similarly, we will put this code in the event Click of the object optOptionButton2:
Private Sub optOptionButton2_Click()
If Sheet1.optOptionButton2.Value = True Then
Sheet1.Range("C3") = "Female"
End If
End Sub
The value of the Option button is in the Value attribute of the object optOptionButton1 or optOptionButton2. The value of the Option button can be true if it is chosen or false if it’s not chosen.
Image 3. Return Male if the first Option button is chosen
As you can see in Image 3, we clicked on the first Option button. Therefore, the value of Sheet1.optOptionButton1.Value is true, so the result in C3 is Male.
Image 4. Return Female if the second Option button is chosen
Similarly to the previous example, the value of C3 is changed to Female, as we have chosen the second Option button. In this case, the procedure optOptionButton2_Click() is triggered.
Use an Option button in a UserForm
As we mentioned, Option button is most often used in UserForms. To explain how you can do it, we will first insert an UserForm. In VBA Editor, right-click on Module name, click on Insert and choose UserForm:
Image 5. Insert a Userform
To display controls for inserting, you need to enable the Toolbox. To do this, click on the Toolbox icon in the toolbar. After that, you will get the windows with all the controls available. You can click on the Option button to create it in the Userform:
Image 6. Insert an Option button in the Userform
In the properties window, we change the name of the Option button to optOptionButton1 and caption to Male. Similarly, we created another Option button for Female. When we run the Userform, we get two Option buttons:
Image 7. Two Option buttons in the Userform
If you want to get a selected Option button, you need to use the same logic as for a Worksheet, which is explained earlier in the article.
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
Learn More!
В этом материале мы рассмотрим пример, в котором используется очень популярный интерфейсный элемент управления «Переключатель» (рис. 1.44). Как правило, он используется для того, чтобы установить определенную опцию либо отобразить конкретный набор элементов управления.
Рис. 1.44. Размещение элемента управления «Переключатель» на листе
На рис. 1.45 показан интерфейс, который нам необходимо разработать на листе новой книги.
Рис. 1.45. Пример использования переключателей
Для верхнего переключателя в качестве значения свойства Name используем NN, а для нижнего — MS. Подберем шрифт, необходимый цвет и текст самой подписи иа элементе управления (значение свойства Caption).
В правой части листа расположим два элемента управления «Поле со списком» для отображения городов (Name — SpCity) и фирм (Name — SpFrm).
Функциональность разработки выглядит следующим образом. При щелчке на одном из переключателей список городов заполняется городами указанной области. В одном случае это будут города Нижегородской области, а в другом — Московской. Далее щелчком на определенном городе в поле со списком городов производится заполнение другого поля со списком. В него включаются организации, расположенные в указанном городе. В листингах 1.29 и 1.30 представлены процедуры, связанные со щелчками на переключателях.
1 2 3 4 5 6 7 |
' Листинг 1.29. Обработка щелчка на переключателе NN Private Sub NN_Click() SpCity.Clear SpFrm.Clear SpCity.AddItem "Арзамас" SpCity.AddItem "Балахна" End Sub |
1 2 3 4 5 6 7 8 |
' Листинг 1.30. Обработка щелчка на переключателе MS Private Sub MS_Click() SpCity.Clear SpFrm.Clear SpCity.AddItem "Красногорск" SpCity.AddItem "Мытищи" SpCity.AddItem "Раменское" End Sub |
После заполнения поля со списком городами на очереди — процедура обработки щелчка на данном элементе управления (листинг 1.31).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
' Листинг 1.31. Обработка щелчка на поле со списком SpCity Private Sub SpCity_Click() SpFrm.Clear If SpCity.Text = "Красногорск" Then SpFrm.AddItem "Альт" SpFrm.AddItem "Веда" ElseIf SpCity.Text = "Мытищи" Then SpFrm.AddItem "Миг" SpFrm.AddItem "Марс" ElseIf SpCity.Text = "Раменское" Then SpFrm.AddItem "Сатурн" SpFrm.AddItem "Юпитер" ElseIf SpCity.Text = "Арзамас" Then SpFrm.AddItem "Меркурий" SpFrm.AddItem "Зенит" ElseIf SpCity.Text = "Балахна" Then SpFrm.AddItem "Венера" SpFrm.AddItem "Ника" End If End Sub |
Осталось завершить разработку. Так, при выборе фирмы в поле со списком фирм на рабочем листе в ячейке Н8 должно отображаться название фирмы. Для этого определим процедуру обработки щелчка на поле со списком SpFrm в виде, представленном в листинге 1.32.
1 2 3 4 |
' Листинг 1.32. Обработка щелчка на переключателе SpFrm Private Sub SpFrm_Click() Range("H8").Value = SpFrm.Text End Sub |
По теме
Новые публикации
Переключатели
В этом разделе мы
рассмотрим пример, в котором используется
очень популярный интерфейсный элемент
управления “Переключатель” (рис. 1.44).
Как правило, он используется для того,
чтобы установить определенную опцию,
либо отобразить конкретный набор
элементов управления.
Рис.
1.44. Размещение элемента управления
“Переключатель” на листе
На рис. 1.45 показан интерфейс, который
нам необходимо разработать на листе
новой книги.
Для верхнего переключателя в качестве
значения свойства Name
используем NN,
а для нижнего соответственно — MS.
Подберем шрифт для отображения подписи,
необходимый цвет и текст самой подписи
на элементе управления (значение свойства
Caption).
В правой части листа расположим элемент
управления “Поле со списком” для
отражения городов (Name
– SpSity) и еще один элемент
управления “Поле со списком” для фирм
(Name –
SpFrm).
Рис.
1.45. Пример использования
переключателей
Функциональность
разработки выглядит следующим образом.
При щелчке по одному из переключателей
список городов заполняется городами
указанной области. В одном случае это
будут города Нижегородской области, а
в другом — Московской. Далее щелчком
по определенному городу в поле со списком
городов производится заполнение другого
поля со списком. В него включаются
организации расположенные в указанном
городе. На листингах 1.29 и 1.30 представлены
процедуры, связанные со щелчками по
переключателям.
Листинг
1.29. Обработка щелчка по переключателю
NN
Private
Sub NN_Click()
SpCity.Clear
SpFrm.Clear
SpCity.AddItem
«Арзамас»
SpCity.AddItem
«Балахна»
End
Sub
Листинг
1.30. Обработка
щелчка по переключателю MS
Private
Sub MS_Click()
SpCity.Clear
SpFrm.Clear
SpCity.AddItem
«Красногорск»
SpCity.AddItem
«Мытищи»
SpCity.AddItem
«Раменское»
End
Sub
После заполнения поля
со списком городами на очереди —
процедура обработки щелчка по данному
элементу управления (листинг 1.31).
Листинг
1.31. Обработка
щелчка по полю со списком SpCity
Private
Sub SpCity_Click()
SpFrm.Clear
If
SpCity.Text = » Красногорск» Then
SpFrm.AddItem
«Альт»
SpFrm.AddItem
«Веда»
ElseIf
SpCity.Text = «Мытищи» Then
SpFrm.AddItem
«Миг»
SpFrm.AddItem
«Марс»
ElseIf
SpCity.Text = «Раменское» Then
SpFrm.AddItem
«Сатурн»
SpFrm.AddItem
«Юпитер»
ElseIf
SpCity.Text = «Арзамас» Then
SpFrm.AddItem
«Меркурий»
SpFrm.AddItem
«Зенит»
ElseIf
SpCity.Text = «Балахна» Then
SpFrm.AddItem
«Венера»
SpFrm.AddItem
«Ника»
End
If
End
Sub
Осталось завершить
разработку. Так, при выборе фирмы в поле
со списком фирм на рабочем листе в ячейке
Н8
должно отображаться название фирмы.
Для этого определим процедуру обработки
щелчка по полю со списком SpFrm
в виде,
представленном на листинге
1.32.
Листинг
1.32. Обработка щелчка по переключателю
SpFrm
Private
Sub SpFrm_Click()
Range(«H8»).Value
= SpFrm.Text
End
Sub
Результат функционирования
разработки показан на рис. 1.46.
Рис.
1.46. Демонстрация работы с элементами
управления типа ”Переключатель”
Основные сведения по vba
В заключительном разделе главы мы
рассмотрим основные элементы языка,
который используется во всех разработках,
приведенных в книге. При этом мы уделим
внимание только тем конструкциям,
которые нам понадобятся в последующих
главах. Полную информацию по VBA
можно получить из хороших книг, изданных
недавно [3,4].
При написании процедур мы уже встречались
с переменными. Переменной можно считать
фрагмент памяти в компьютере, которому
мы присвоили имя. Для обращения (записи
или считывания информации) к этому
фрагменту в программе, следует использовать
выбранное имя. Для того чтобы в зависимости
от требований программы отводить
различные области памяти для переменных,
существуют типы данных. Когда мы создаем
переменную, то сразу указываем (явно
или неявно), к какому типу данных она
относится. Основные типы данных языка
VBA приведены в табл. 1.3.
В этой таблице присутствуют как простые
типы (например, Integer
и String),
так и достаточно сложные (типа Object
и Variant).
Переменные типа Object
занимают немного места в памяти компьютера
— всего 4 байта, однако при этом позволяют
работать с такими сложными объектами
как приложение Microsoft Word
или 1С:Предприятие 8 из процедур Microsoft
Excel. В последующих главах
мы это увидим на примерах.
В VBA
существуют два способа отведения памяти
для переменных.
Первый способ — явный,
в этом случае вы указываете с помощью
инструкции, переменную какого типа
создаете. Синтаксис выглядит следующим
образом:
Dim
Имя_Переменной As Тип_Данных.
Здесь Dim
и
As
это ключевые слова языка
программирования. В качестве имени
переменной вы можете задавать любое
слово (без пробелов внутри), а о возможных
типах данных мы уже сказали.
Можно несколько
ускорить работу при написании программ
— не объявлять переменные. В этом случае
при появлении в тексте переменной,
которая не была описана с помощью
инструкции Dim,
она автоматически становится
переменной типа
Variant
и для нее отводится соответствующая
память.
Таблица
1.3. Основные типы данных
Тип |
Область |
Комментарий |
Boolean |
True |
Логическое |
Byte |
от 0 до 255 |
Число без знака |
Date |
01.01.0100– 31.12.9999 |
Дата и время |
Object |
4 байта |
Ссылка на объект |
Integer |
Короткое целое |
От –32768 до 32767 |
Variant |
Любое значение |
Для хранения |
Long |
Длинное целое |
От –2 147 483 648 |
String |
Длина строки от |
Хранение строковых |
Более сложный вид
данных по сравнению с переменной — это
массив, который представляет набор
однотипных данных (набор данных
определенного типа). Массив, как и
переменная, задается именем. При этом
каждый элемент массива определяется
его индексом. Например, Mass(3)
— третий элемент массива с именем Mass
. Объявление массива производится
аналогично объявлению переменных:
Dim
Имя_Массива ( Граница_Массива ) As
Тип_Данных_Массива.
По умолчанию индексация
массивов начинается с 0. Например, в
строке
Dim
Mass
( 10 ) As Integer
отводится память под
массив Mass.
При этом в памяти выделяется 11
ячеек — каждая ячейка для хранения
данных типа Integer.
Для определенности заметим, что для
одной переменной типа Integer
отводится 2 байта в памяти компьютера.
Поговорим теперь о встроенных функциях
и процедурах, которые существенно
облегчают программирование в среде
VBA. Фактически они позволяют
программисту быстро оформить стандартные
действия. Приведем пояснения по ряду
стандартных функций и процедур, которые
нам понадобятся далее.
Так для вывода сообщений на экран
используется функция
MsgBox (
сообщение [, кнопки ] ,[заголовок]),
где сообщение
— представляет собой текст, который
будет отображен в диалоговом окне. Этот
параметр является обязательным, для
вывода текста этого сообщения данная
функция и существует. Параметр кнопки
представляет собой числовое значение,
являющееся суммой чисел, определяющих,
какие кнопки будут отображены в диалоговом
окне. Для каждого варианта кнопок можно
использовать либо числа, либо константы
VBA, эта информация
представлена в табл. 1.4.
Таблица
1.4. Константы функции MsgBox
Константа |
Значение |
Комментарий |
vbOKOnly |
0 |
Только кнопка |
vbOKCancel |
1 |
Кнопки OK |
vbYesNoCancel |
3 |
Кнопки Yes, |
vbYesNo |
4 |
Выводятся кнопки |
vbCritical |
16 |
Critical |
vbInformation |
64 |
Information |
vbDefaultButon1 |
0 |
Выделяется первая |
vbDefaultButon2 |
256 |
Выделяется вторая |
vbDefaultButon3 |
512 |
Выделяется третья |
vbApplicationModal |
0 |
Модальность |
vbSystemModal |
4096 |
Модальность |
Необходимое значение
параметра кнопки
можно получить сложением этих констант.
При этом из каждой группы можно указать
только одну константу. Если параметр
кнопки
не указан, то по умолчанию предполагается,
что его значение равно нулю:
MsgBox
( сообщение , 0),
что
соответствует тому, что выбраны три
константы с нулевыми значениями
(vbOKOnly,
vbDefaultButon1 и
vbApplicationModal).
Мы
еще не сказали о параметре заголовок,
определяющем текст, который будет
помещен в строку заголовка диалогового
окна. Если заголовок не указан, то
выводится заголовок с информацией о
приложении, из которого данная функция
вызвана.
Например,
мы можем сформировать окно диалога с
тремя кнопками (Yes,
No, Cancel)
и установкой фокуса (выделения) на третью
кнопку. Для этого вызов функции можно
оформить следующим образом:
MsgBox
(сообщение , vbYesNoCancel+ vbDefaultButon3).
Мы рассмотрели, какие входные параметры
для функции MsgBox
необходимо задать, поговорим теперь о
значениях, возвращаемых функцией.
Значение, возвращаемое данной функцией,
говорит о том, какую именно кнопку нажал
пользователь в диалоговом окне, что
позволяет организовать в программе
различную обработку в зависимости от
разных действий пользователя. Для
проверки возвращаемого значения можно
воспользоваться константами VBA
из табл. 1.5.
Таблица
1.5. Константы, возвращаемые функцией
MsgBox
Константа |
Значение |
Нажатая |
vbOK |
1 |
OK |
vbCancel |
2 |
Cancel |
vbYes |
6 |
Yes |
vbNo |
7 |
No |
Рассмотрим теперь функцию ввода:
InputBox
(сообщение [,заголовок][,значение по
умолчанию]).
Первые два параметра вам знакомы по
функции
MsgBox.
Значение по умолчанию определяет то
значение, которое появляется в поле
ввода. Фактически это способ задать при
вводе наиболее ожидаемое значение. Если
этот параметр опущен, то в поле ввода
будет пустая строка. В качестве примера
использования данной функции приведем
следующую конструкцию:
z =
InputBox(“Введите число маршрутов”,
”Начальная
информация”,1).
В результате перед нами откроется окно
ввода с заголовком Начальная
информация.
Как мы уже сказали, в VBA
существует несколько типов данных и
часто приходится выполнять действия
над переменными разных типов. В большинстве
случаев VBA самостоятельно
правильно производит преобразования
типов в операциях со смешанными типами
данных. Однако в ряде ситуаций требуется
указывать какое именно преобразование
типов данных необходимо выполнить перед
вычислением. Далее в рассматриваемых
примерах часто будет использоваться
преобразование строки в число и наоборот.
Для этого можно воспользоваться
стандартными функциями, приведенными
в табл. 1.6.
Некоторым недостатком функции Val
является неопределенность типа числовых
данных. Поэтому наряду с ней можно,
например, использовать другую стандартную
функцию преобразования типов —
CInt(выражение),
которая
позволяет выполнить преобразование
выражения в число типа Integer.
Существуют аналогичные функции,
выполняющие преобразование в другие
числовые типы данных.
Таблица
1.6. Функции преобразования типов
Функция |
Возвращаемое |
Val |
Число |
CInt |
Число типа Integer |
CStr |
Строка |
На этом мы завершим
вводную главу. В следующих главах нам
придется воспользоваться еще рядом
стандартных процедур и функций, пояснения
по которым будут приводиться по ходу
изложения.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Элементы Переключатель позволяют делать выбор значений из заранее заданного диапазона 1, 2, 3, … Этот элемент имеет много общего с
Флажком
.
Для вставки элементов управления на лист необходимо отобразить вкладку
Разработчик.
-
В MS EXCEL 2007 это можно сделать через меню
.
-
В MS EXCEL 2010 это можно сделать так: Откройте вкладку
Файл
; Нажмите кнопку
Параметры
; Нажмите кнопку
Настроить ленту
; Выберите команду
Настройка ленты и в разделе Основные вкладки
установите флажок
Разработчик
.
Теперь вставить элемент управления можно через меню:
.
Обратите внимание, что в этом меню можно также вставить Элементы ActiveX, которые расположены ниже интересующих нас Элементов управления формы. У обоих типов есть одни и те же элементы Кнопка, Список, Флажок и т.п. Разница между ними следующая: чтобы использовать Элементы ActiveX необходимо использовать VBA, а Элементы управления формы можно напрямую привязать к ячейке на листе.
Полоса прокрутки
(
Scroll Bar
) как, впрочем и все другие Элементы управления формы, возвращает только 1 числовое значение. См.
файл примера
.
Обзорную статью обо всех элементах управления формы можно
прочитать здесь
.
Вставка Переключателя
Через меню
выберем левой клавишей мыши элемент
Переключатель
.
После этого выпадающее меню закроется, а курсор вместо обычного толстого крестика
превратится в тонкий крестик.
Кликнув левой клавишей мыши в нужное место на листе, элемент
Переключатель
будет помещен на лист.
От одного переключателя на листе нет никакого толка, т.к. он должен что-то переключать. Поэтому добавим еще 2 переключателя.
Выделение Переключателей
Чтобы выделить
Переключатель
нажмите и удерживайте клавишу
CTRL
, затем кликните левой клавишей на
Переключатель
. Если продолжать удерживать
CTRL
можно выделить все 3
Переключателя
.
Выравнивание Переключателей
Выровнять Переключатели по левому краю, выделите их, затем нажмите кнопку меню
Выровнять по левому краю
(
).
Переключатели
выровняются по левому краю, но расстояние между ними будет различным.
Опять выделите
Переключатели
и нажмите кнопку меню
Распределить по вертикали
(
).
При желании
Переключатели
можно сгруппировать (выделите их, нажмите на них правой клавишей мыши, в контекстном меню выберите
).
Перемещение Переключателей и изменение их размеров
Если навести курсор на
выделенный
Переключатель
(курсор примет форму 4-х направленных в разные стороны стрелок), затем нажать и удерживать левую кнопку мыши, то можно его переместить.
Удерживая клавишу ALT
можно выровнять
Переключатель
по границам ячеек. Выделенный
Переключатель
также можно перемещать стрелками с клавиатуры.
Если навести курсор на углы прямоугольника или на маленькие квадратики на границе, то можно изменить его размер.
Связываем Переключатель с ячейкой
Как было сказано выше, все Элементы управления формы возвращают значение. Это значение помещается в ячейку определенную пользователем. Чтобы связать Элемент управления с ячейкой, кликните на него ПРАВОЙ клавишей мыши, в появившемся контекстном меню выберите
Формат объекта…
Появится диалоговое окно, выберите вкладку Элемент управления (если такая вкладка отсутствует, то Вы вставили Элемент ActiveX, а не Элемент управления формы, об этом см. выше).
В поле
Связь с ячейкой
нужно ввести ссылку на ячейку. Свяжем наши
Переключатели
с ячейкой
А1
.
Нажмите ОК.
Как только мы свяжем первый
Переключатель
с ячейкой, все остальные автоматически свяжутся с этой же ячейкой. При добавлении новых
Переключателей
на этот лист, они также будут связываться с этой ячейкой.
В нашем случае (3
Переключателя
) в ячейке
А1
будет выводится значение 1, если выбран первый
Переключатель
, 2, если выбран второй и 3, если третий.
Существует и другой способ связать Элемент управления и ячейку: выделите правой клавишей мыши Элемент управления, в
Строке формул
введите =, затем кликните левой клавишей мыши на нужную ячейку, нажмите клавишу
ENTER
. Чтобы изменить ячейку, с которой связан Элемент управления, достаточно перетащить эту ячейку в нужное место, взяв за ее границу.
Чтобы организовать 2 независимых группы
Переключателей
, необходимо использовать Элемент управления формы —
Группа
. Сначала разместите на листе две
Группы
, затем поместите на них требуемое количество
Переключателей
, затем свяжите по одному из
Переключателей
из каждой группы с разными ячейками на листе (см. лист
Группа в файле примера
).
Примечание
: Использовать только 2
Переключателя
на листе не имеет смысла — их функциональность эквивалентна элементу
Флажок
, а затрат на их создание в 2 раза больше.
Флажок
возвращает ИСТИНА или ЛОЖЬ, а 2
Переключателя
— 1 или 2. Хотя, это, безусловно, дело вкуса.
Использование Переключателей
Переключатели
часто
используются для выбора опций или параметров вычислений. Например, при планировании планов продаж можно рассчитать объемы продаж по трем сценариям «Базовый», «Умеренный», «Оптимистичный», каждый из которых предусматривает свой рост продаж +5%, +10%, +20%.
Переключатели связаны с ячейкой
А1
. Значения в ячейке (от 1 до 3) преобразуются в 5%, 10%, 20% с помощью формулы
=ВЫБОР($A$1;5%;10%;20%)
в ячейке
Е7
.
Перерасчет планов продаж ведется с помощью формулы
=B11*(1+$E$7)
Для выделения выбранного сценария в диапазоне
С11:С16
использовано
Условное форматирование
.
Имя Элемента управления
У каждого Элемента управления есть имя. Чтобы его узнать нужно выделить
Переключатель
, в
Поле имя
будет отображено его имя. Чтобы изменить имя
Переключателя
— введите в
Поле имя
новое имя
Переключателя
и нажмите клавишу
ENTER
. Также имя можно изменить в
Области выделения
(
).
Зачем нам знать имя элемента управления? Если Вы не планируете управлять
Переключателем
из программы VBA, то имя может потребоваться только для настройки его отображения на листе. Об этом читайте ниже.
Прячем Переключатель на листе
Включите
Область выделения
(
)
В
Области выделения
можно управлять отображением не только Элементов управления, но и других объектов на листе, например рисунков.
Нажмите на изображение глаза напротив имени объекта и объект исчезнет/ появится. Например, скроем переключатели из второй группы.