Microsoft Excel

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

Как при помощи VBA эффективно использовать элемент управления «Переключатель»

В этом материале мы рассмотрим пример, в котором используется очень популярный интерфейсный элемент управления «Переключатель» (рис. 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
Top