Главная страница

Лаб.практикум по инф-ке_МУ. С. Л. Миньков лабораторный практикум по информатике


Скачать 4.64 Mb.
НазваниеС. Л. Миньков лабораторный практикум по информатике
Дата22.05.2022
Размер4.64 Mb.
Формат файлаpdf
Имя файлаЛаб.практикум по инф-ке_МУ.pdf
ТипПрактикум
#542916
страница7 из 10
1   2   3   4   5   6   7   8   9   10
Раздел 7. Элементы управления
Цель раздела: изучить элементы управления VBA Excel, их свойства и методы; научиться создавать рабочие листы с исполь- зованием элементов управления.
7.1 Формы
В Microsoft Excel с использованием VBA (или встроенных возможностей) можно создавать замечательные формы и добав- лять на них многочисленные элементы управления и объекты, значительно расширяющие возможности ввода данных и их представления.
Форма — это документ, имеющий стандартную структуру и формат, упрощающий сбор, упорядочение и изменение данных.
В Excel можно создавать формы нескольких типов:
– формы данных (см. п.3.9),
– листы с элементами управления формы и элементами
ActiveX (то есть сам лист будет являться формой),
– пользовательские формы VBA.
Каждый из этих типов формы можно использовать по от- дельности или сочетать с другими типами для создания нужного решения.
Сам лист Excel можно считать формой в виде сетки, позво- ляющей вводить и просматривать данные. В листы Excel по умолчанию встроены возможности, аналогичные элементам управления, например примечания и средства проверки данных.
Ячейки, как и текстовые поля, поддерживают различные способы ввода и форматирования данных. Ячейки часто используются в качестве подписей, а путем настройки высоты и ширины ячеек, а также их объединения можно сделать лист похожим на простую форму для ввода данных. Другие возможности, например приме- чания к ячейкам, гиперссылки, фоновые изображения, проверка данных, условное форматирование, встроенные диаграммы и ав- тофильтр, рассмотренные ранее, позволяют использовать лист в качестве формы с расширенными функциями.

137
Для обеспечения гибкости управления на полотно листа до- бавляют элементы управления и другие графические объекты.
В Excel поддерживаются два типа элементов управления: эле- менты управления форм и элементы ActiveX. Кроме того, можно добавлять объекты из средств рисования, например автофигуры, графические элементы SmartArt и надписи.
7.2 Элементы управления формы
Элементы управления формы (табл. 7.1) позволяют ссы- латься на данные ячеек и взаимодействовать с ними без исполь-
зования программного кода VBA. Кроме того, их можно добав- лять на листы диаграмм. Например, после добавления списка на лист и его связи с ячейкой можно возвращать числовое значе- ние текущей позиции выбранного элемента. Затем можно исполь- зовать это значение с функцией ИНДЕКС для выбора других элементов из списка.
С помощью элементов управления формы можно также вы- полнять макросы. Можно назначить элементу управления суще- ствующий макрос либо создать или записать новый. Когда поль- зователь формы щелкает элемент управления, запускается макрос.
Но такие элементы управления невозможно добавлять в пользовательские формы, а также применять для выполнения веб-скриптов на веб-страницах.
Таблица 7.1 — Элементы управления формы
Эле-
мент
Назва-
ние эле-
мента
Пример
Описание
Надпись
Указывает назначение ячейки или текстового поля либо содержит описа- ние (заголовки, подписи, рисунки) или краткие инструкции
Рамка
Группирует связанные элементы управления в виде прямоугольника с необязательной подписью. Обычно группируются переключатели, флажки или тесно связанные данные

138
Эле-
мент
Назва-
ние эле-
мента
Пример
Описание
Кнопка
Запуск макроса, который выполняет действие при нажатии кнопки
Флажок
Включает или отключает значение, что соответствует выбору противопо- ложных действий. На листе или в груп- пе можно установить несколько флаж- ков. Флажок может иметь одно из трех состояний: установлен (значение вклю- чено), снят (значение отключено) и смешенное состояние, то есть сочетание состояний «включено» и «отключено»
(если поддерживается выбор несколь- ких элементов)
Переклю- чатель
Позволяет выбрать одно из ограни- ченного набора взаимоисключающих значений. Переключатели обычно нахо- дятся в группе или рамке. Переключатель может иметь одно из трех состояний: установлен (значение включено), снят
(значение отключено) и смешенное со- стояние, т. е. сочетание состояний «вклю- чено» и «отключено» (если поддержива- ется выбор нескольких элементов)
Список
Выводит список из одного или не- скольких текстовых элементов, которые может выбрать пользователь. Список можно применять для представления большого числа вариантов, количество и содержимое которых может быть различ- ным. Существует три типа списков:

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

Список связанного выбора позволя- ет выбрать один элемент, а также не- сколько расположенных рядом элементов.

Список, разрешающий несвязный выбор нескольких строк, позволяет вы- брать один элемент, расположенные ря- дом элементы, разрозненные элементы

139
Эле-
мент
Назва-
ние эле-
мента
Пример
Описание
Поле со списком
Представляет собой сочетание тек- стового поля и раскрывающегося спис- ка. Поле со списком компактнее обыч- ного списка, но чтобы отобразить спи- сок элементов, пользователь должен щелкнуть стрелку вниз. Поле со спис- ком следует использовать, когда требу- ется обеспечить возможность ввода элементов в список и выбора из него одного элемента. В этом элементе управления отображается текущее зна- чение независимо от того, каким обра- зом оно было введено
Полоса прокрутки
Используется для прокрутки диапа- зона значений с помощью кнопок со стрелками или путем перетаскивания ползунка полосы прокрутки. Можно перемещаться по странице значений (с заранее заданным интервалом), щелкая область между ползунком и одной из кнопок со стрелками для прокрутки.
Как правило, пользователь также может вводить текст непосредственно в свя- занную ячейку или текстовое поле
Счетчик
Позволяет увеличивать и уменьшать значение, например числовое значение, время или дату. Чтобы увеличить зна- чение, щелкните стрелку вверх, чтобы уменьшить — стрелку вниз. Как прави- ло, пользователь также может вводить текст непосредственно в связанную ячейку или текстовое поле
Примечание. Элементы управления (Текстовое поле),
(Поле со списком) и (Поле с раскрывающимся списком) недо- ступны в книгах Excel 2010 (см. рис 4.7).
7.3 Элементы ActiveX
Элементы ActiveX (табл. 7.2) можно использовать на листе
Excel (без кода VBA или с ним), а также на пользовательских формах VBA. Их рекомендуется применять, если требуются бо- лее гибкие возможности, чем у элементов управления формы.
Окончание табл. 7.1

140
Многочисленные свойства элементов ActiveX позволяют настраивать их внешний вид, поведение, шрифты и другие харак- теристики.
Можно также управлять событиями, которые происходят при взаимодействии с элементом ActiveX. Например, можно вы- полнять различные действия в зависимости от того, какой эле- мент выбирается из списка, или отправлять запрос базе данных для заполнения поля со списком элементами при нажатии кноп- ки. Можно также создавать макросы, которые реагируют на со- бытия, связанные с элементами ActiveX. При выборе элемента управления будет выполняться код VBA, обрабатывающий все назначенные ему события.
Примечание. Не все элементы ActiveX можно использовать непосредственно на листах; некоторые из них можно применять только в пользовательских формах Visual Basic для приложений
(VBA). При попытке добавить такие элементы управления на лист приложение Excel отображает сообщение «Вставка объ- екта неосуществима».
Элементы ActiveX невозможно добавить на листы диаграмм
(с помощью пользовательского интерфейса) или на листы макро- сов XLM. Кроме того, невозможно назначить макрос, который будет выполняться непосредственно элементом ActiveX, как для элемента управления формы.
Таблица 7.2 — Обзор элементов ActiveX
Кноп-
ки
Назва-
ние
Пример
Описание
Флажок
Включает или отключает значение, что соответствует выбору противоположных действий. На листе или в группе можно одновременно установить несколько флажков. Флажок может иметь одно из трех состояний: установлен (значение включено), снят (значение отключено) и смешенное состояние, то есть сочетание состояний «включено» и «отключено»
(если поддерживается выбор нескольких элементов)

141
Кноп-
ки
Назва-
ние
Пример
Описание
Текстовое поле
Представляет собой прямоугольник, в котором можно просматривать, вводить и изменять текст или данные, связанные с ячейкой. Текстовое поле также может быть статическим и содержать данные, предназначенные только для чтения
Кнопка
Запуск макроса, который выполняет действие при нажатии кнопки
Переклю- чатель
Позволяет выбрать одно из ограничен- ного набора взаимоисключающих значе- ний. Переключатели обычно находятся в группе или рамке. Переключатель может иметь одно из трех состояний: установлен
(значение включено), снят (значение от- ключено) и смешенное состояние, то есть сочетание состояний «включено» и «от- ключено» (если поддерживается выбор нескольких элементов)
Список
Выводит список из одного или не- скольких текстовых элементов, которые может выбрать пользователь. Список можно применять для представления большого числа вариантов, количество и содержимое которых может быть различ- ным. Существует три типа списков:

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

Список связанного выбора позволяет выбрать один элемент, а также несколько расположенных рядом элементов.

Список, разрешающий несвязный выбор нескольких строк, позволяет вы- брать один элемент, расположенные ря- дом элементы, а также разрозненные эле- менты
Продолжение табл. 7.2

142
Кноп-
ки
Назва-
ние
Пример
Описание
Поле со списком
Представляет собой сочетание тексто- вого поля и раскрывающегося списка. По- ле со списком компактнее обычного спис- ка, но чтобы отобразить список элементов, пользователь должен щелкнуть стрелку вниз. Поле со списком следует использо- вать, когда требуется обеспечить возмож- ность ввода элементов в список и выбора из него одного элемента. В этом элементе управления отображается текущее значе- ние независимо от того, каким образом оно было введено
Выклю- чатель
Указывает на состояние (да/нет) или режим (вкл./вкл.). При нажатии кнопки она меняет свое состояние на противопо- ложное
Счетчик
Позволяет увеличивать и уменьшать зна- чение, например числовое значение, время или дату. Чтобы увеличить значение, щелк- ните стрелку вверх, чтобы уменьшить — стрелку вниз. Как правило, пользователь также может вводить текст в связанную ячейку или текстовое поле
Полоса прокрут- ки
Используется для прокрутки диапазона значений с помощью кнопок со стрелками или путем перетаскивания ползунка поло- сы прокрутки. Можно перемещаться по странице значений (с заранее заданным интервалом), щелкая область между пол- зунком и одной из кнопок со стрелками для прокрутки. Пользователь также может вводить текст непосредственно в связан- ную ячейку или текстовое поле
Надпись
Указывает назначение ячейки или тек- стового поля либо содержит описание (за- головки, подписи, рисунки) или краткие инструкции
Изобра- жение
Выводит изображение, например то- чечный рисунок (BMP), JPEG или GIF
Продолжение табл. 7.2

143
Кноп-
ки
Назва-
ние
Пример
Описание
Другие элементы
Выводит список доступных на компью- тере элементов ActiveX, которые можно добавить в настраиваемую форму (напри- мер, проигрывателя Windows Media).
В этом диалоговом окне также можно за- регистрировать пользовательский элемент управления
Рамка
Группирует связанные элементы управления в виде прямоугольника с не- обязательной подписью. Обычно группи- руются переключатели, флажки или тесно связанные данные.
ПРИМЕЧАНИЕ.
Элемент
ActiveX
«Рамка» недоступен в разделе Элементы
ActiveX на вкладке Вставка. Но его можно добавить из диалогового окна Другие эле- менты, выбрав пункт Рамка (Microsoft
Forms 2.0 Frame)
7.4 Объекты средств рисования
В форму также можно включать графические элементы
SmartArt, фигуры, WordArt и надписи. Можно изменять размер и цвет таких объектов, поворачивать, отражать и объединять их, чтобы получать еще более сложные фигуры. При вводе текста непосредственно в фигуру или надпись он становится частью объекта — при повороте или отражении объекта текст также ме- няет свое положение. В отличие от элементов ActiveX отдельным словам и знакам в объекте можно назначать различные атрибуты, например размер или начертание шрифта. Кроме того, объектам можно назначать макросы или гиперссылки. Можно даже связать текст в фигуре или надписи с ячейкой листа и динамически вы- водить обновленные значения.
Примечание. По внешнему виду иногда трудно определить тип элемента управления. Для этого щелкните его правой кноп- кой мыши по периметру объекта и просмотрите контекстное ме- ню.
Окончание табл. 7.2

144

Если контекстное меню содержит команду Свойства, элемент управления является элементом ActiveX и сейчас ис- пользуется режим конструктора.

Если контекстное меню содержит команду Назначить
макрос, это элемент управления формы.

Если контекстное меню содержит команду Изменить
текст, это объект-рисунок.
Работа с Кнопкой — и как с элементом управления формы, и как с элементом ActiveX была рассмотрена выше. Поработаем с другими элементами.
Пример 7.1. Использование элементов управления «Фла-
жок» и «Переключатель».
Флажки(CheckBox) используются для выбора не взаимоис- ключающих вариантов (если этих вариантов немного), а пере- ключатели (OptionButton), наоборот, — для выбора варианта в ситуации или/или.
Разместим на новом рабочем листе вертикально в ряд три элемента ActiveX CheckBox. Назовем их «Два состояния», «Три состояния» и «Связан с D6» (рис. 7.1).
Рис. 7.1 — Часть листа Excel с элементами управления Флажок
и Переключатель

145
Создадим для них процедуры отклика на событие Click.
В теле процедур поместим соответствующую инструкцию MsgBox.
Затем в окне редактирования кода модуля запишем следующее:
Private Sub CheckBox1_Click()
MsgBox "Значение для CheckBox1 равно" & CheckBox1.Value
End Sub
Private Sub CheckBox2_Click()
MsgBox "Значение для CheckBox2 равно" & CheckBox2.Value
End Sub
Private Sub CheckBox3_Click()
MsgBox "Значение для CheckBox3 равно" & CheckBox3.Value
End Sub
Для второго флажка установим свойство TripleState равным
True .
Для третьего флажка установим свойство LinkedCell (свя- занная ячейка) равным соответственно D6.
Ниже поместим элемент управления формы Флажок и назначим ему макрос:
Sub Флажок1_Щелчок()
MsgBox "Работает флажок"
End Sub
Затем установим три элемента ActiveX CheckBox Op-
tionButton.
Для каждого переключателя установим в свойствах различ- ные детали оформления (BackColor, Shadow и др.).
Создадим кнопку Узнать состояние. В окне редактирова- ния кода модуля запишем:
Private Sub CommandButton1_Click()
If OptionButton1.Value = True Then MsgBox "Включен Переклю-
чатель 1"
If OptionButton2.Value = True Then MsgBox "Включен Переклю-
чатель 2"
If OptionButton3.Value = True Then MsgBox "Включен Переклю-
чатель 3"
End Sub

146
Рядом поместим переключатели как элементы управления формы.
Назначим им макросы
Sub Перекл1_Щелчок()
MsgBox "Включен Переключатель 2, а Переключатель 1 вы-
ключен", , "Работа переключателя - элемента управления формой"
End Sub
Sub Перекл2_Щелчок()
MsgBox "Включен Переключатель 1, а Переключатель 2 вы-
ключен", , "Работа переключателя - элемента управления формой"
End Sub
Задание 7.1. Работа с элементами управления CheckBox,
OptionButton и ToggleButton
Протестировать работу всех элементов, расположенных на листе (рис. 7.1) и описать отличия в работе элементов управ- ления формы и элементов ActiveX. Поместить элемент ActiveX
ToggleButton (Выключатель), при нажатии на который появляет- ся сообщение «Включено!», при отжатии — «Выключено!». Опи- сать особенности его работы по сравнению с другим кнопками
(«button»).
Пример 7.2. Использование элементов управления «Спи-
сок», «Счетчик» и «Полоса прокрутки».
Откроем новый рабочий лист и поместим элемент ActiveX
Список (ListBox).
Выделим рядом со списком двенадцать ячеек и присвоим этому диапазону имя Данные1, выбрав в контекстном меню ко- манду Присвоить имя… или вызвав Диспетчер имен (Ctrl+F3).
Затем введем значения в эти ячейки, например названия ме- сяцев. Для заполнения списка данными из этого диапазона ука- жем в свойстве ListFillRange значение Данные1 (можно указать и массив ячеек).
Установим связь списка с какой-либо ячейкой на листе
(например, G2), изменив свойство LinkedCell.

147
На этом же рабочем листе поместим второй элемент управ- ления Список, три кнопки, три переключателя и один флажок.
Переименуем все элементы управления согласно рис. 7.2.
Рис. 7.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

148
'Очищаем содержимое
.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. Затем идет проверка выделения:

149 если значение 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).

150
Для первой полосы прокрутки задаем связанную ячейку
M13, изменив свойство LinkedCell. (рис. 7.2).
Для второй полосы прокрутки создадим процедуру отклика на событие Change. Запишем в окне редактирования кода модуля следующий код:
Private Sub ScrollBar2_Change()
MsgBox ScrollBar2.Value
End Sub
Для счетчика также зададим связанную ячейку M17.
При движении бегунка первой полосы прокрутки в связан- ной ячейке F3 должно появляться соответствующее значение бе- гунка из заданного диапазона.
При движении бегунка второй полосы прокрутки соответ- ствующее значение бегунка из заданного диапазона будет появ- ляться в окне сообщения.
При нажатии кнопок со стрелками «влево» или «вправо» счетчика в связанной ячейке В11 должно появляться соответ- ствующее значение счетчика из заданного диапазона.
Задание 7.2. Работа с элементами управления ListBox,
ScrollBar и SpinButton
1. Протестировать созданные программные коды.
2. Вставить Полосу прокрутки и Счетчик как элементы формы управления. Сравнить их работу с соответствующими элементами ActiveX.
3. Изменить макрос CommandButton1_Click таким обра- зом, чтобы в список ListBox2 добавлялось содержимое из ListBox1 с номером строки.

151
1   2   3   4   5   6   7   8   9   10


написать администратору сайта