Пример использования элементов управления: списки
Пример 6.2 –Пусть в столбце A рабочего листа Excel, начиная с ячейки A1, введены номера контрактов, в столбце B (начиная с B1) – их стоимости. Требуется разработать программу для отбора номеров контрактов, стоимость которых составляет не менее или, наоборот, не более (по выбору пользователя) некоторой заданной величины.
Пусть для этого предполагается разместить на рабочем листе Excel следующие элементы управления:
- кнопка Отобрать;
- список, содержащий два элемента: Не менее и Не более;
- текстовое поле.
При нажатии кнопки Отобрать должны выполняться следующие действия: если в списке выбран элемент Не менее, то должны отбираться номера контрактов, стоимость которых составляет не менее величины, указанной в текстовом поле. Если же выбран элемент Не более, то должны отбираться номера контрактов, стоимость которых не превышает величины, указанной в текстовом поле. Номера отобранных контрактов должны выводиться в столбец E, начиная с ячейки E1.
Пусть на рабочем листе Excel создана кнопка со свойствами Name – Vybor, Caption – Отобрать, а также текстовое поле со свойством Name – Granitsa.
Рассмотрим более подробно создание списка. Требуется в каком-либо месте рабочего листа Excel ввести элементы создаваемого списка. Пусть в ячейке M1 введен текст Не менее, а в ячейке M2 – Не более.
Примечание – Элементы списка могут и не перечисляться на рабочем листе Excel, а задаваться в программе. Этот способ задания элементов списка будет рассмотрен в лабораторной работе №7.
После того, как на рабочем листе Excel создан список (имя по умолчанию – ListBox1), для него необходимо указать следующие свойства: Name – Bol_men (или любое другое имя), ListFillRange – M1:M2 (т.е. диапазон ячеек, где указаны элементы списка).
Введем следующую программу, которая должна выполняться при щелчке мышью по кнопке Отобрать:
Private Sub Vybor_Click()
Set d = Range("A1").CurrentRegion
m = d.Rows.Count
x = CSng(granitsa.Value)
Set rez = Range("E1")
k = 0
If Bol_men.ListIndex = 0 Then
For i = 1 To m
If d.Cells(i, 2) >= x Then
k = k + 1
rez.Cells(k, 1) = d.Cells(i, 1)
End If
Next i
End If
If bol_men.ListIndex = 1 Then
For i = 1 To m
If d.Cells(i, 2) <= x Then
k = k + 1
rez.Cells(k, 1) = d.Cells(i, 1)
End If
Next i
End If
End Sub
Приведем некоторые пояснения по программе. Переменной x присваивается значение текстового поля granitsa; функция CSng требуется для преобразования значения этого поля (по умолчанию имеющего тип String) в тип Single, т.е. в число.
ListIndex – свойство элемента управления типа “Список” (в данном случае – списка Bol_men), представляющее собой номер текущего (выбранного) элемента списка, причем элементы списка нумеруются с нуля. Таким образом, условие bol_men.ListIndex = 0 означает, что выбран первый элемент списка (в данном случае – элемент Не менее); условие bol_men.ListIndex = 1 означает, что выбран второй элемент (Не более).
Вместо свойства ListIndex можно было бы использовать свойство Text, представляющее собой значение текущего (выбранного) элемента списка. В этом случае в программе вместо условия If bol_men.ListIndex = 0 было бы указано условие If bol_men.Text = “Не менее”, а вместо условия If bol_men.ListIndex = 1 – условие If bol_men.Text = “Не более”.
Варианты заданий
Примечание – Во всех вариантах заданий рекомендуется, разработав программу согласно заданию, внести в нее изменения, заменив переключатели на список.
ВАРИАНТ 1 – Установить на рабочем листе следующие элементы управления: два переключателя (Число и Среднее), счетчик, флажок Сумма, кнопку Подсчитать, для текстовых поля.
Разработать программу на VBA для обработки данных в диапазоне ячеек Excel, заполненном числами и выделенном с помощью мыши. При нажатии кнопки Подсчитать в заданной строке выделенного диапазона подсчитывается количество чисел, превышающих число, заданное в первом текстовом поле (если установлен переключатель Число), или среднее по этой строке (если установлен переключатель Среднее). Номер строки, для которой выполняется подсчет, задается с помощью счетчика. Подсчитанное количество отображается в ячейке справа от выбранной строки. Кроме того, если установлен флажок Сумма, то вычисляется сумма выбранной строки; она выводится во второе текстовое поле.
ВАРИАНТ 2 – Установить на рабочем листе следующие элементы управления: два переключателя (Среднее арифметическое и Среднее геометрическое), счетчик, два флажка (Строка и Столбец), кнопку Вычислить.
Разработать программу на VBA для обработки данных в диапазоне ячеек Excel, заполненном числами и выделенном с помощью мыши. При нажатии кнопки Вычислить вычисляется среднее арифметическое или среднее геометрическое (в зависимости от установленного переключателя) по строке или по столбцу выделенной области. Если установлен флажок Строка, то вычисление выполняется по строке, если установлен флажок Столбец – по столбцу; если установлены оба флажка, то вычисление выполняется и по строке, и по столбцу. Если не установлен ни один из флажков, то вычисления не выполняются. Номер строки (или столбца), для которой выполняются вычисления, задается с помощью счетчика. Результат вычисления выводится в ячейку рядом с соответствующей строкой или столбцом.
Указание – Среднее геометрическое из n чисел – это их произведение, из которого взят корень степени n.
ВАРИАНТ 3 – Установить на рабочем листе следующие элементы управления: два переключателя (Выбранный и Все), счетчик, флажок Максимальный, кнопку Вычислить, текстовое поле.
Ввести в рабочий лист исходные данные: в столбец A (начиная с ячейки A1) – фамилии работников, в столбцы B-F – их доходы за пять лет.
Разработать программу на VBA для вычисления среднего дохода каждого работника. Вычисление выполняется при нажатии кнопки Вычислить. Если при этом установлен переключатель Выбранный, то средний доход вычисляется для одного работника (его номер указывается с помощью счетчика), если установлен переключатель Все – то для всех работников. Вычисленные средние доходы выводятся в столбец H. Кроме того, если доходы вычисляются для всех работников, и при этом установлен флажок Максимальный, то в текстовом поле отображается фамилия человека с максимальным средним доходом.
ВАРИАНТ 4 – Установить на рабочем листе следующие элементы управления: два переключателя (По строке и По всему диапазону), счетчик, флажок Подсчет, три текстовых поля, кнопку Замена.
Разработать программу на VBA для обработки данных в диапазоне ячеек Excel, заполненном числами и выделенном с помощью мыши. При нажатии кнопки Замена выполняется замена числа, указанного в первом текстовом поле, на число, указанное во втором текстовом поле. В зависимости от состояния переключателей замена выполняется в одной строке выделенного диапазона или по всему диапазону. Если замена выполняется в одной строке, то ее номер задается с помощью счетчика. Кроме того, если установлен флажок Подсчет, то в третье текстовое поле выводится количество выполненных замен.
ВАРИАНТ 5 – Установить на рабочем листе следующие элементы управления: два переключателя (За последние и За все), счетчик, флажок Максимальный, кнопку Средний доход, текстовое поле.
Ввести в рабочий лист исходные данные: в столбец A (начиная с ячейки A1) – фамилии работников, в столбцы B-F – их доходы за пять лет.
Разработать программу на VBA для вычисления среднего дохода каждого работника. Вычисление выполняется при нажатии кнопки Средний доход. Если при этом установлен переключатель За последние, то средний доход вычисляется за последние годы (количество лет указывается с помощью счетчика). Если установлен переключатель За все, то средний доход вычисляется за пять лет. Вычисленные средние доходы выводятся в столбец G. Кроме того, если установлен флажок Максимальный, то в текстовом поле отображается фамилия работника с максимальным средним доходом.
ВАРИАНТ 6 – Установить на рабочем листе следующие элементы управления: два переключателя (Строки и Столбцы), два счетчика, флажок Сумма, текстовое поле, кнопку Переставить.
Разработать программу на VBA для обработки данных в диапазоне ячеек Excel, заполненном числами и выделенном с помощью мыши. При нажатии кнопки Переставить в выделенном диапазоне меняются местами две строки или два столбца (в зависимости от настойки переключателей). Номера строк (или столбцов), которые требуется поменять местами, задаются с помощью счетчиков. Кроме того, если установлен флажок Сумма, то вычисляется сумма строк (или столбцов), которые поменялись местами. Эта сумма выводится в текстовое поле.
ВАРИАНТ 7 – Установить на рабочем листе следующие элементы управления: два переключателя (В начало и В конец), счетчик, флажок По всему диапазону, кнопку Переставить, текстовое поле.
Разработать программу на VBA для обработки данных в диапазоне ячеек Excel, заполненном числами и выделенном с помощью мыши. При нажатии кнопки Переставить в заданной строке определяется максимальный элемент, и он меняется местами с первым или с последним элементом этой строки (в зависимости от настройки переключателей). Номер строки, для которой выполняется перестановка, задается с помощью счетчика. Кроме того, найденный максимальный элемент отображается в текстовом поле. Если установлен флажок По всему диапазону, то перестановка выполняется для всех строк выделенного диапазона (независимо от настройки счетчика).
ЛАБОРАТОРНАЯ РАБОТА №7
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|