Задание 4.1. Работа с элементами управления CheckBox, OptionButton и ToggleButton




 

Протестировать работу всех элементов, расположенных на листе (рис. 4.1) и описать отличия в работе элементов управления формы и элементов ActiveX. Поместить элемент ActiveX ToggleButton (Выключатель),при нажатии на который появляется сообщение «Включено!», при отжатии — «Выключено!». Описать особенности его работы по сравнению с другим кнопками

(«button»).

 

Пример 4.2. Использование элементов управления«Список», «Счетчик» и «Полоса прокрутки».

Открыть новый рабочий лист и поместить элемент ActiveX Список (ListBox).

 

Выделить рядом со списком двенадцать ячеек и присвоить этому диапазону имя Данные1, выбрав в контекстном меню команду Присвоить имя… или вызвав Диспетчер имен (Ctrl+F3).

 

Затем ввести значения в эти ячейки, например названия месяцев. Для заполнения списка данными из этого диапазона указать в свойстве ListFillRange значение Данные1 (можно указать и массив ячеек).

 

Установить связь списка с какой-либо ячейкой на листе (например, G2), изменив свойство LinkedCell.

На этом же рабочем листе поместить второй элемент управления Список, три кнопки, три переключателя и один флажок. Переименовать все элементы управления согласно рис. 4.2.

 

 

Рис. 4.2 — Часть листа Excel с элементами управления

 

ListBox, ScrollBar и SpinButton

 

Затем в окне редактирования кода флажка CheckBox1 записать:

 

Private Sub CheckBox1_Click()

If CheckBox1.Value Then

ListBox2.ListStyle = fmListStyleOption

Else

ListBox2.ListStyle = fmListStylePlain

End If

ListBox2.Height = 170

End Sub

 

Этот процедура проверяет значение флажка CheckBox1. Если флажок установлен, то стиль списка ListBox2 устанавливается равным fmListStyleOption (отображаются переключатели). Иначе устанавливается стиль fmListStylePlain (переключателей нет).

 

Первым двум кнопкам (Заполнить список и Очистить список)присвоить следующие процедуры:

 

Private Sub CommandButton1_Click() 'Обращаемся к объекту ListBox2 With ListBox2

'Очищаем содержимое

 

Clear

'Добавляем строки

 

For i = 1 To 12

.AddItem "Строка "& i

Next i

End With

End Sub

 

Private Sub CommandButton2_Click()

'Очищаем содержимое списка

ListBox2.Clear

End Sub

 

Для переключателей написать следующие процедуры, которые определяют способ выделения строк в списке:

 

Private Sub OptionButton1_Click() 'Выделение одной строки ListBox2.MultiSelect = fmMultiSelectSingle End Sub

 

Private Sub OptionButton2_Click()

'Выделение нескольких строк в списке

ListBox2.MultiSelect = fmMultiSelectMulti

End Sub

 

Private Sub OptionButton3_Click()

'Выделение нескольких строк в списке с помощью Ctrl или Shift

 

ListBox2.MultiSelect = fmMultiSelectExtended End Sub

 

Третьей кнопке (Что выделено?) назначить процедуру проверки режима выделения.

 

Если переключателем включен режим выделения одной строки fmMultiSelectSingle, то на экран выводится значение выделенной строки или сообщение «Ничего не выделено» при отсутствии выделения. Если включен другой режим (множественное выделение), то осуществляется перебор всех строк списка и в случае обнаружения выделенной строки переменной ListFlag присваивается значение True. Затем идет проверка выделения:

если значение True, то на экран выдается сообщение — значение выделенной строки, если False, то сообщение, что ничего не выделено.

 

Соответствующий код выглядит следующим образом:

 

Private Sub CommandButton3_Click()

'Проверка выделения

Dim ListFlag As Boolean

Dim x As Integer

ListFlag = False

With ListBox2

If.MultiSelect = fmMultiSelectSingle Then

If.Text = "" Then

MsgBox "Ничего не выделено"

Else

MsgBox.Value

 

End If

Else

For x = 0 To.ListCount - 1

If.Selected(x) = True Then

ListFlag = True

End If

Next x

Select Case ListFlag

Case Is = False

MsgBox "Ничего не выделено"

Case Is = True

For x = 0 To.ListCount - 1

 

If.Selected(x) Then

MsgBox.List(x)

End If

Next x

End Select

End If

End With

End Sub

 

Поместить на этот же лист два элемента ActiveX Полоса прокрутки (ScrollBar) и один элемент Счетчик (SpinButton). Для всех элементов задать максимальное и минимальное значение (Min = 0 и Max = 100).

Для первой полосы прокрутки задать связанную ячейку M13, изменив свойство LinkedCell. (рис. 4.2).

 

Для второй полосы прокрутки создать процедуру отклика на событие Change. Записать в окне редактирования кода модуля следующий код:

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-11-02 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: