- •Раздел 1. Объектно-ориентированное программирование
- •Тема 1.1. Введение в алгоритмизацию и программирование
- •Тема 1.2. Объектно-ориентированное программирование. Язык Visual Basic for Application
- •Практическое занятие №1 Тема «Разработка простого приложения»
- •Задания для практического занятия и инструктаж по их выполнению
- •Практическое занятие №2 Тема «Разработка приложения с использованием кнопок, надписей и функции создания случайного числа»
- •Практическое занятие №3 Тема «Разработка приложения с использованием элемента управления для ввода текста»
- •Практическое занятие №4 Тема «Разработка приложения с использованием стандартных диалоговых окон»
- •Откройте Excel, переименуйте Лист1 в «Сообщения».
- •Задание №2 Используя функции MsgBox и InputBox для ввода и вывода значений, подсчитайте площадь окружности, если известен ее радиус.
- •Откройте Excel, переименуйте Лист1 в «Окружность».
- •Практическое занятие №5 Тема «Создание макросов и их применение в Excel»
- •Задание №2 Назначить макрос графическим изображениям.
- •Практическое занятие №6 Тема «Разработка приложения с внедрением рисунка»
- •Практическое занятие №7 Тема «Отладка программ»
- •Практическое занятие №8 Тема «Работа с листом и алгоритмическими конструкциями»
- •Задание №1 Создать приложение «Разнеси числа по листам»
- •Практическое занятие №9 Тема «Разработка программ с использованием встроенных функций»
- •Приложение Excel содержит более 400 встроенных функций рабочего листа и объект Application позволяет вызывать их при помощи конструкции вида:
- •Практическое занятие №10 Тема «Разработка приложения с использованием инструкции With»
- •Задание №1 Для данных, представленных в заданной таблице, вывести на лист список товаров фирмы hp и их цену.
- •Практическое занятие №11 Тема «Разработка приложения с использованием поля со списком»
- •Алгоритм формирования источника информации для поля со списком в пользовательской форме
- •Практическое занятие №12 Тема «Разработка приложения с использованием переключателя»
- •Практическое занятие №13 Тема «Разработка приложения «Работа с матрицей»
- •Задание №1
- •Определим адрес правого нижнего элемента матрицы и присвоим его элементу ad.
- •Формирование диапазона расположения матрицы.
- •Практическое занятие №14 Тема «Разработка приложения для работы с текстом Word»
- •Основные стандартные функции для символьных переменных
- •Практическое занятие №15 Тема «Разработка приложения для работы с абзацами в тексте Word»
- •Задание №1 «Количество абзацев в документе»
- •Задание №2 «Количество букв а (русских) в абзаце».
- •Практическое занятие №16 Тема «Использование языка vba при работе с основными объектами базы данных»
Практическое занятие №12 Тема «Разработка приложения с использованием переключателя»
Цели занятия:
закрепление полученных знаний по темам «Основные элементы и объекты VBA» «Основы программирования на VBA»;
формирование умения создавать приложения в VBA;
формирование умения использовать элемент управления Переключатель;
формирование умения осуществлять разработку кода программного модуля на современных языках программирования.
Вопросы для актуализации опорных знаний:
какой элемент управления называется переключатель?
в чем его назначение?
какие его основные свойства?
Задания для практического занятия и инструктаж по их выполнению
Задание №1 На листе Excel подготовить матрицу. Размерность матрицы формируется с помощью запроса о количестве строк и столбцов. При этом количество строк и столбцов не должно превышать десяти. Элементы матрицы вводятся с применением датчика случайных чисел в диапазоне от 0 до 9. Над элементами матрицы произвести операции нахождения:
суммы всех элементов;
поиска наибольшего элемента;
замену четных элементов на нечетные элементы, увеличивая элемент на единицу.
Спроектировать пользовательскую форму «Операции с матрицей». В форме предусмотреть кнопки:
Ввод матрицы.
Вычислить.
Очистить лист.
Выход.
Пояснение к заданию: по нажатию на кнопку «Ввод матрицы» должна формироваться матрица на листе Excel. По нажатию на кнопку «Вычислить» должно производиться нахождение суммы элементов матрицы или наибольшего элемента, или происходить замена четных элементов на нечетные. Какая из этих операций будет выполняться, необходимо указать с помощью элемента «Переключатель» (OptionButton). По нажатию на кнопку «Очистить лист» должно происходить удаление с листа Матрицы самой матрицы и результата операции с ней. Кнопка «Выход» должна закрывать форму. На листе Excel подготовить кнопку «Работа с матрицей», которая вызывает пользовательскую форму «Операции с матрицей».
Элемент управления Переключатель (OptionButton) позволяет выбрать один из нескольких взаимоисключающих параметров или действий. Переключатели обычно отображаются группами, обеспечивая возможность выбора альтернативного варианта.
Спроектируйте пользовательскую форму UserForm1 «Операции с матрицей»:
Код программы для кнопок:
Кнопка «Очистить лист»:
Private Sub CommandButton2_Click()
For i = 1 To 30
For j = 1 To 30
Worksheets("Матрица").Cells(i, j).Value = ""
Next j
Next i
End Sub
Кнопка «Выход»:
Private Sub CommandButton1_Click()
Userform1.Hide
End Sub
Кнопка «Ввод матрицы»:
Private Sub CommandButton4_Click()
m = InputBox("Введите количество столбцов матрицы", "Ввод")
If m > 10 Then
MsgBox "Количество столбцов более 10 не обрабатываю!", 48, "Ошибка!"
GoTo metka
End If
n = InputBox("Введите количество строк", "Ввод")
If n > 10 Then
MsgBox " Количество строк более 10 не обрабатываю!", 48, "Ошибка!"
GoTo metka
End If
For i = 1 To m
For j = 1 To n
Randomize
matr(i, j) = Int(10 * Rnd)
Next j
Next i
Worksheets("Матрица").Cells(1, 1).Value = "Матрица"
For i = 1 To m
For j = 1 To n
Worksheets("Матрица").Cells(i + 1, j).Value = matr(i, j)
Next j
Next i
metka:
End Sub
При нажатии на клавишу Ввод матрицы должно появиться окно сообщения для ввода количества строк и столбцов матрицы:
При вводе количества строк более 10 появляется окно сообщения:
Кнопка «Вычислить»:
' выполнение действий над матрицей
Private Sub CommandButton6_Click()
Dim MAX As Integer
Dim i As Integer
Dim j As Integer
Dim SUM As Integer
Dim flag As Integer
'определение суммы
SUM = 0
flag = 0
If OptionButton1.Value = True Then
For i = 2 To m + 1
For j = 1 To n
SUM = SUM + Worksheets("Матрица").Cells(i, j)
Next j
Next i
Worksheets("Матрица").Cells(11, 1).Value = "Сумма элементов ="
Worksheets("Матрица").Cells(12, 1).Value = SUM
MsgBox "=" & SUM, 48, " Сумма элементов"
GoTo metka
End If
' определение максимума
If OptionButton2.Value = True Then
MAX = Worksheets("Матрица").Cells(2, 1).Value
For i = 2 To m + 1
For j = 1 To n
If MAX < Worksheets("Матрица").Cells(i, j) Then
MAX = Worksheets("Матрица").Cells(i, j)
End If
Next j
Next i
Worksheets("Матрица").Cells(11, 1).Value = "Максимальный элемент"
Worksheets("Матрица").Cells(12, 1).Value = MAX
MsgBox "=" & MAX, 48, " Максимальный элемент"
GoTo metka
End If
' замена четных
If OptionButton3.Value = True Then
For i = 2 To m + 1
For j = 1 To n
d = Worksheets("Матрица").Cells(i, j)
If d / 2 = Int(d / 2) Then
Worksheets("Матрица").Cells(i, j) = d + 1
flag = 1
End If
Next j
Next i
If flag = 1 Then
MsgBox "Замена произошла", 64, "Замена"
Else
MsgBox "Замены нет, все элементы нечетные", 64, "Замена"
End If
End If
metka:
End Sub
При выборе подсчета суммы элементов результат выводится в ячейку А11 и А12, дополнительно должно появиться окно сообщения:
При выборе максимального элемента результат выводится в ячейку А11 и А12, дополнительно должно появиться окно сообщения:
При выборе замены элементов должно появиться окно сообщения:
или
На листе Excel Матрица спроектируйте кнопку Работа с матрицей, которая вызывает пользовательскую форму «Операция с матрицей»:
Private Sub Запуск_Click()
Userform1.Show
End Sub
Работа должна выглядеть так:
Сохраните работу, результат предъявите преподавателю.
