Vba excel переключатель на листе

Элемент управления пользовательской формы OptionButton для выбора одной опции из группы и передачи результата в VBA Excel. Свойства переключателя, примеры.

UserForm.OptionButton – это элемент управления пользовательской формы, который используется в группе одноименных элементов и предназначен для передачи в код VBA информации о его выборе или невыборе пользователем: False – переключатель не выбран, True – переключатель выбран.

Элемент управления OptionButton

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

В отличие от элемента управления CheckBox, только один OptionButton из группы переключателей может иметь значение True. Для разделения разных групп переключателей друг от друга используются элементы управления Frame (рамки). Все переключатели вне рамок являются одной группой.

Элемент управления OptionButton в группе одноименных элементов

Так же, как и элемент управления CheckBox, OptionButton принимает третье состояние при присвоении ему в коде VBA Excel значения Null. Переключатель отображается с серым кружком и серой точкой.

Элементs управления OptionButton со значением 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 и добавьте в модуль формы представленный выше код. Запуск этого кода отобразит следующую форму:

Элементы управления OptionButton, размещенные на форме в виде пьедестала почета

Пример 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:

vba-insert-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:

vba-option-button-properties

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:

vba-insert-option-button-2

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.

vba-option-button-male

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.

vba-option-button-female

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:

vba option button insert 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:

vba insert option button in 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:

vba userform with 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!
vba save as

Learn More!

Решения для офиса
08.02.2015 8936

В этом материале мы рассмотрим пример, в котором используется очень популярный интерфейсный элемент управления «Переключатель» (рис. 1.44). Как правило, он используется для того, чтобы установить определенную опцию либо отобразить конкретный набор элементов управления.

Рис. 1.44. Размещение элемента управления «Переключатель» на листе

Рис. 1.44. Размещение элемента управления «Переключатель» на листе

На рис. 1.45 показан интерфейс, который нам необходимо разработать на листе новой книги.

Рис. 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
(Истина) и False
(Ложь)

Логическое
значение

Byte

от 0 до 255

Число без знака

Date

01.01.0100– 31.12.9999

Дата и время

Object

4 байта

Ссылка на объект

Integer

Короткое целое

От –32768 до 32767

Variant

Любое значение

Для хранения
переменных любых типов

Long

Длинное целое

От –2 147 483 648
до 2 147 483 647

String

Длина строки от
0 до 64 Кбайт

Хранение строковых
значений

Более сложный вид
данных по сравнению с переменной — это
массив, который представляет набор
однотипных данных (набор данных
определенного типа). Массив, как и
переменная, задается именем. При этом
каждый элемент массива определяется
его индексом. Например, 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

Только кнопка
OK

vbOKCancel

1

Кнопки OK
и Cancel

vbYesNoCancel

3

Кнопки Yes,
No
и Cancel

vbYesNo

4

Выводятся кнопки
Yes
и No

vbCritical

16

Critical
Message

vbInformation

64

Information
Message

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, то имя может потребоваться только для настройки его отображения на листе. Об этом читайте ниже.

Прячем Переключатель на листе

Включите

Область выделения

(

)

В

Области выделения

можно управлять отображением не только Элементов управления, но и других объектов на листе, например рисунков.

Нажмите на изображение глаза напротив имени объекта и объект исчезнет/ появится. Например, скроем переключатели из второй группы.

Like this post? Please share to your friends:
  • Vba excel переименовать файл в папке
  • Vba excel переименовать активный лист
  • Vba excel переименование листа
  • Vba excel перезаписать файл
  • Vba excel передать ячейку в функцию