Содержание
Цель работы
Получение практических навыков построения пользовательских форм и программирования действий, связанных с выводом информации на формы.
Варианты заданий
№ | Условие задачи |
1 | Создать экранную форму «Ввод информации о студентах» для заполнения данных о студентах группы: фамилия и инициалы, год рождения, адрес (улица, дом, квартира), средний балл при поступлении. Введенные данные сохранить на листе рабочей книги . Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой. |
2 | Создать экранную форму «Книги» для заполнения данных о 12 редких книгах, хранящихся с библиотеке: название, автор (фамилия и инициалы), год издания, место издания, инвентарный номер.. Введенные данные сохранить на листе рабочей книги . Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой. |
3 | Создать экранную форму «Расписание полетов» для заполнения данных о рейсах самолетов: номер рейса, пункт назначения, время в пути (дробное число), тип самолета, время отправления (два поля записи: часы и минуты).. Введенные данные сохранить на листе рабочей книги . Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой. |
4 | Создать экранную форму «Расписание автобусных маршрутов» для заполнения данных о автобусных маршрутах: пункт отправления, пункт назначения, время в пути (дробное число), время отправления (два поля записи: часы и минуты), количество остановок в пути. Введенные данные сохранить на листе рабочей книги . Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой. |
5 | Создать экранную форму «Продукция молокозавода» для заполнения данных о наименованиях продукции молокозавода, поступивших в продажу: название продукта, дата изготовления (три поля записи: год, месяц и число), срок хранения в днях, закупочная цена (дробное число). Введенные данные сохранить на листе рабочей книги . Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой. |
6 | Создать экранную форму «Информация о фирмах» для заполнения данных о 10 фирмах: название фирмы, фамилия и инициалы владельца (одно поле), адрес (три поля: город, улица, дом), телефон. Введенные данные сохранить на листе рабочей книги . Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой. |
7 | Создать экранную форму «Розыск автомашин» для заполнения данных о автомашинах, находящихся в розыске: марка, цвет, год выпуска, номер, дата угона (три поля: число, месяц, год). Введенные данные сохранить на листе рабочей книги. Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой. |
8 | Создать экранную форму «Сотрудники фирмы» для заполнения данных о сотрудниках фирмы: фамилия, имя, отчество, год рождения, должность, год поступления на работу. Введенные данные сохранить на листе рабочей книги . Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой. |
9 | Создать экранную форму «Информация о спортсменах» для заполнения данных о 10 спортсменах-пловцах: фамилия и инициалы, пол, год рождения, рост, вес, лучшее время, за которое спортсмен проплывает 50 метров. Введенные данные сохранить на листе рабочей книги. Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой. |
10 | Создать экранную форму «Заказы» для заполнения данных о заказах клиентов ателье: фамилия и инициалы, адрес (три поля: улица, дом, квартира), вид заказа, стоимость заказа. Введенные данные сохранить на листе рабочей книги . Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой. |
Лабораторная работа №7 предполагает написание программы/макроса на VBA in Excel. При заказе работы своего варианта вы получите качественно написанную и хорошо прокомментированную программу.
Если дополнительно закажите алгоритм решения вашей задачи (мы крайне рекомендуем это сделать), то получите аккуратно оформленный отчет-алгоритм, поясняющий все тонкости решения поставленной задачи.
Образец выполнения (вариант №9)
Условие задания
Создать экранную форму «Информация о спортсменах» для заполнения данных о 10 спортсменах-пловцах: фамилия и инициалы, пол, год рождения, рост, вес, лучшее время, за которое спортсмен проплывает 50 метров. Введенные данные сохранить на листе рабочей книги. Добавьте в форму кнопку Отмена для завершения работы с пользовательской формой. |
Краткий анализ входных данных
№ | Поле | Описание | Тип данных |
1 | Фамилия и инициалы | Хранит ФИО спортсмена | строковый |
2 | Пол | Всего существует $2$ пола: мужской и женский. Поэтому пользователю будет предложено сделать выбор между двумя этими величинами. | строковый |
3 | Год рождения | Возьмем из заданного списка адекватные значения из отрезка $[1950 … 2017]$ для выбора года рождения | целочисленный |
4 | Рост | Будем измерять рост в целых сантиметрах | целочисленный |
5 | Вес | Будем измерять рост в целых килограммах | целочисленный |
6 | Лучшее время | Это дробное данное, так как важна точность этого показателя | вещественный |
Интерфейс программы
Запускаем MS Excel и создаем книгу, состоящую из $3$ листов:
Лист «Входные данные» содержит перечень допустимых годов рождения спортсменов-пловцов:
Вкладка «Приложение» отвечает за запуск программы на выполнение, а также очистку сводной таблицы от прошлых результатов:
Лист «Сводная таблица» содержит результирующие данные о добавленных спортсменах-пловцах в табличном формате:
Затем проектируем форму с различными элементами управления, которая отвечает за добавление информации о спортсмене-пловце:
При вводе информации о спортсмене-пловце предусмотрен контроль ошибок ввода, а именно:
№ | Контроль | Результат |
1 | Не указана Фамилия И.О. | |
2 | Не указан рост | |
3 | Не указан вес | |
4 | Не указано лучшее время |
Пример полностью правильно введенных данных о спортсмене-пловце:
При нажатии на кнопке «Сохранить данные» вся информация моментально записывается в результирующую сводную таблицу:
Напомним, что по условию задачи допустимо хранить информацию лишь о $10$ спортсменах. Добавим $10$ записей о спортсменах-пловцах:
При попытке добавить $11$-ую запись программа мгновенно реагирует следующим предупреждением:
Решение задачи с использованием VBA in Excel
1 2 3 4 5 6 7 8 | Sub Загрузка_формы() fMain.Show ' отображаем форму ввода на экране пользователя End Sub ' очистка результирующей таблицы от прошлых выводов Sub Clear_Data() Worksheets("Сводная таблица").Range("A2:G11").ClearContents End Sub |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | Private Sub CommandButton1_Click() ' во всех проверках выставляется комбинация опций: vbOKOnly (кнопка "ОК") и vbCritical (иконка восклицательного знака) ' если пользователь забыл ввести ФИО спортсмена If (Me.TextBox1 = "") Then MsgBox "Пожалуйста, введите Фамилию И.О. спортсмена-пловца", vbOKOnly + vbCritical, "Сообщение для пользователя" Me.TextBox1.SetFocus Exit Sub End If ' если пользователь забыл ввести рост спортсмена If (Me.TextBox2 = "") Then MsgBox "Пожалуйста, введите рост спортсмена-пловца", vbOKOnly + vbCritical, "Сообщение для пользователя" Me.TextBox2.SetFocus Exit Sub End If ' если пользователь забыл ввести вес спортсмена If (Me.TextBox3 = "") Then MsgBox "Пожалуйста, введите вес спортсмена-пловца", vbOKOnly + vbCritical, "Сообщение для пользователя" Me.TextBox3.SetFocus Exit Sub End If ' если пользователь забыл ввести лучшее время спортсмена If (Me.TextBox4 = "") Then MsgBox "Пожалуйста, введите лучшее время спортсмена-пловца", vbOKOnly + vbCritical, "Сообщение для пользователя" Me.TextBox4.SetFocus Exit Sub End If ' блок объявления переменных Dim f As Object ' переменная-пользовательская форма Dim i As Integer ' счетчик спортсмена пловца Dim inserted As Boolean ' отвечает за успешность вставки данных в результирующую таблицу Set f = Sheets("Сводная таблица") Worksheets("Сводная таблица").Activate ' изначально предполагаем, что в базе данных нет места для вставки новой записи о спортсмене inserted = False ' ищем позицию вставки новой записи о спортсмене-пловце For i = 2 To 11 If (f.Cells(i, 1) = "") Then ' если нашлось свободное пространство для вставки новых данных, то f.Cells(i, 1) = (i - 1) ' выгружаем порядковый номер спортсмена f.Cells(i, 2) = Me.TextBox1.Value ' выгружаем ФИО f.Cells(i, 3) = Me.ComboBox1.Value ' выгружаем год рождения ' происходит анализ выбора пола спортсмена-пловца: мужской или женский If (Me.OptionButton1.Value = True) Then f.Cells(i, 4) = "Мужской" Else f.Cells(i, 4) = "Женский" End If ' выгружаем физические показатели спортсмена: рост, вес, лучшее время f.Cells(i, 5) = Me.TextBox2.Value f.Cells(i, 6) = Me.TextBox3.Value f.Cells(i, 7) = Me.TextBox4.Value ' вставка данных проведена успешно - обрываем цикл inserted = True Exit For End If Next i ' если в базе данных не оказалось свободного места для вставки новой записи о спортсмене - выдаем сообщение If (inserted = False) Then MsgBox "База данных поддерживает только 10ть записей о спортсменах. Вы попытались добавить 11ую запись. Это невозможно!", vbOKOnly + vbExclamation, "Сообщение для пользователя" Unload Me End If End Sub Private Sub CommandButton2_Click() Unload Me ' при нажатии кнопки "Отмена" происходит закрытие формы ввода End Sub ' в этом событии происходит подгрузка начальных данных о допустимых годах рождения спортсменов Private Sub UserForm_Activate() With Me.ComboBox1 .RowSource = "Год" .ListIndex = 0 End With End Sub |
Стоимость заказа работы
➡ Стоимость решения задания из любого варианта составляет $500$ рублей.
Также дополнительно мы вам можем предложить:
- Создание аккуратной блок-схемы ($600$ рублей).
- Детальное описание алгоритма решения задачи ($500$ рублей).
Для оформления заказа пишите на почту: proglabs@mail.ru.
Время нашего ответа обычно составляет не более $10$ минут.
Добавить комментарий