- •Раздел 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 при работе с основными объектами базы данных»
Практическое занятие №1 Тема «Разработка простого приложения»
Цели занятия:
закрепление полученных знаний по теме «Основные элементы и объекты VBA»;
формирование умения создавать простые приложения в VBA;
формирование умения осуществлять разработку кода программного модуля на современных языках программирования.
Вопросы для актуализации опорных знаний:
как создать пользовательскую форму?
что называют элементом управления?
какие основные свойства элементов управления Надпись и Кнопка?
Задания для практического занятия и инструктаж по их выполнению
Задание №1 Создать приложение «Функции VBA». По нажатию на кнопку «Запуск» должно генерироваться случайное число. Это число должно отображаться в элементе надпись. Необходимо вычислить корень квадратный из этого числа, синус и косинус этого же числа, а результаты вывести в другой элемент Надпись. Кроме этого в форме необходимо вывести текущую дату. По нажатию на кнопку «Выход» форма должна скрываться с экрана. Для запуска формы на листе Excel необходимо создать кнопку с надписью «Функции VBA».
Запустите Excel.
Загрузите VBA. СервисàМакросàРедактор Visual Basic.
Проверьте, чтобы на экране появилось окно проекта и окно свойств.
Выполните команду «Вставить форму» или InsertàUserForm. Форму можно увеличить стандартным способом, ухватившись за правый нижний угол и растягивая ее.
Сделайте появившуюся форму UserForm1(или 2) активной и установите значения свойств данного объекта:
Свойство
Значение
Caption (заголовок)
Функции VBA
Height (высота)
350
Width (ширина)
500
SpecialEffect (контур формы)
2 (на усмотрение 0-6)
StartUpPosition (месторасположение на экране при выводе)
2- CenterScreen
Добавьте в форму элементы управления Label (надпись)
и CommandButton
(кнопка управления)
с панели элементов. Форма должна принять
следующий вид:
Для вывода результатов расчета подготовьте элементы Label1, Label2, Label3, Label4.
Установите значения свойств объекта Label1 – Label4:
Свойство |
Значение |
Caption (заголовок) |
(надписей быть не должно) |
Font (шрифт) |
Verdana, жирный курсив, 12 (можно на свое усмотрение) |
Width (ширина) |
150 |
Height (высота) |
45 |
SpecialEffect (контур поля) |
Label1 -1 Label2 -2 Label3 -3 Label4 -6 (разные эффекты позволят увидеть отличие друг от друга) |
TextAlign (расположение текста в поле) |
2- fmTextAlignCenter |
Для пояснительных надписей подготовьте элементы Label5, Label6, Label7, Label8.
Установите значения свойств объекта Label5 – Label8:
Свойство |
Значение |
Caption (заголовок) |
Label5 – «Случайное число» Label6 – «Корень квадратный» Label7 – «Синус» Label8 – «Косинус» |
Font (шрифт) |
Arial, жирный, 12 (можно на свое усмотрение) |
Width (ширина) |
120 |
Height (высота) |
35 |
SpecialEffect (контур поля) |
1 |
TextAlign (расположение текста в поле) |
1- fmTextAlignLeft |
Для вывода текущей даты подготовьте элемент управления Label9.
Установите значения свойств объекта Label9:
Свойство |
Значение |
Caption (заголовок) |
Дата |
Font (шрифт) |
Arial, жирный курсив, 12 (можно на свое усмотрение) |
Width (ширина) |
100 |
Height (высота) |
50 |
0SpecialEffect (контур поля) |
0 |
TextAlign (расположение текста в поле) |
2- fmTextAlignCenter |
Добавьте на форму командную кнопку для запуска программы, применив элемент управления CommandButton1.
Установите значения свойств объекта CommandButton1:
Свойство |
Значение |
Caption (заголовок) |
Запуск |
Font (шрифт) |
Verdana, обычный, 12 (можно на свое усмотрение) |
Добавьте на форму командную кнопку для закрытия формы, применив элемент управления CommandButton2.
Установите значения свойств объекта CommandButton2:
Свойство |
Значение |
Caption (заголовок) |
Выход |
Font (шрифт) |
Verdana, обычный, 12 (можно на свое усмотрение) |
После выполнения всех пунктов форма в режиме конструктора должна выглядеть так:
Перед написанием программы проверьте работоспособность формы. Для вывода формы на экран выполните команду Runà Run Sub/UserForm или нажмите клавишу <F5>. На фоне листа Excel появится созданная нами форма, но, нажав на кнопки «Запуск» и «Выход», ничего не происходит, т.к. отклик на событие (нажатие кнопки) не запрограммирован. Закройте форму и перейдите в редактор VBA.
В форме дважды щелкните на кнопке «Запуск», чтобы вывести заготовку программы, связанную с командной кнопкой
Программа начинается с заголовка Private Sub (локальная процедура), и заканчивается предложением End Sub (конец процедуры). Между этими предложениями записывается текст программы.
Появится заготовка программы. Напишите текст программы:
Randomize
Label9.Caption = Date
Label1.Caption = Int(Rnd * 90)+1)
Label2.Caption = Sqr(Label1.Caption)
Label3.Caption = Cos(Label1.Caption * 3.14159 / 180)
Label4.Caption = Sin(Label1.Caption * 3.14159 / 180)
Каждая строка программы содержит название объекта, его свойство (левая часть строки, до равенства) и установку значению свойства (правая часть строки, после знака равенства).
Label– это объект.
Caption – это свойство.
Date – это значение свойства (Текущая дата).
Rnd * 90 – это значение свойства.
Функция генерации случайных чисел Rnd – генерирует случайное число между 0 и 1.
Перед использованием функции используйте функцию Randomize без аргумента
Функция Int возвращает целую часть аргумента (в данном случае – произведение случайного числа на 90 и отбрасывает дробную часть аргумента). Результат – числа от 1 до 90.
Sqr(Label1.Caption) – т.к. случайное число сохранилось в объекте Label1, то мы применяем функцию Sqr, аргументом которой является объект, где хранится случайное число.
Sin(Label1.Caption * 3.14159 / 180) – аргумент функции синус рассматривается в радианах, но для того, чтобы было привычнее анализировать полученные результаты, применим формулу для преобразования градусов в радианы, т.е. преобразуем случайное число – это градусы в радианы и получим результат.
Текст программы:
Private Sub CommandButton1_Click()
Label9.Caption = Date
Label1.Caption = Int(Rnd * 90) + 1
Label1.BackColor = RGB(255, 255, 0)
Label2.Caption = Sqr(Label1.Caption)
Label3.Caption = Cos(Label1.Caption * 3.14159 / 180)
Label4.Caption = Sin(Label1.Caption * 3.14159 / 180)
End Sub
Выведите форму на экран, нажав клавишу F5, и проверьте работоспособность кнопки «Запуск». Результат выполнения программы показан на рисунке:
Запрограммируйте кнопку «Выход». Перейдите в редактор VBA и дважды щелкните по кнопке «Выход» в форме. Появится заготовка программы. Вставьте одну строку программы – UserForm1.Hide
В этой строке:
UserForm1 – это объект.
Hide – это метод.
Текст программы:
Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub
Кроме запуска программы по нажатию клавиши <F5>, существует еще один способ вывода формы на экран. Для этого:
Перейдите в приложение Excel на любой лист.
На панели элементов управления выберите инструмент CommandButton и нарисуйте кнопку на листе Excel.
Вызовите свойства этого элемента, нажав на панели элементов управления кнопку Свойства
Установите значения свойств объекта CommandButton1:
Свойство
Значение
Caption (заголовок)
Функции VBA
Font (шрифт)
Arial, жирный, 14
BackColor (цвет фона кнопки)
Любой на закладке Pallete
ForeColor (цвет букв на кнопке)
Любой на закладке Pallete
Запрограммируйте кнопку «Функции VBA». Для этого вызовите заготовку программы, нажав на панели элементов управления кнопку «Исходный текст»
,
не забыв перед этим выделить кнопку
CommandButton1.
Вставьте одну строку программы – UserForm1.Show, что означает показать форму UserForm1 на экране.
В этой строке:
UserForm1 – это объект.
Show – это метод.
Затем перейдите на лист приложения Excel и отключите режим конструктора на панели элементов управления
.
Проверьте работу программы.
