Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_раб_ИЭФ_2-ой сем_11-12.doc
Скачиваний:
7
Добавлен:
08.05.2019
Размер:
753.66 Кб
Скачать

Лабораторная работа № 1 Разработка инженерного проекта

ЦЕЛЬ РАБОТЫ: приобретение навыков создания инженерного проекта средствами Excel и VBA.

ЗАДАНИЕ ДЛЯ ВЫПОЛНЕНИЯ РАБОТЫ

  1. Переименовать Лист1 – Лист5 в листы: Деканат, Факультет, Успеваемость, Студенты, Дежурства и оформить их согласно образцам (рис.1 – рис.5):

Рис. 1 лист Деканат

Рис. 2 лист Успеваемость

Рис. 3 лист Факультет

Рис. 4 лист Студенты

Рис. 5 лист Дежурства

  1. В таблицы листов Факультет (рис. 3) и Успеваемость (рис.2)внести свои данные.

  2. В редакторе VBA создать 4 формы с элементами управления (рис. 6 – рис. 9):

Форма1­ – Label1, ComboBox1, TextBox1, кнопка.

Форма2 – Label1, Label2, Label3, TextBox1, TextBox2, TextBox3, кнопка.

Форма3 – Label1, Label2, Label3, ComboBox1, TextBox1, ListBox1, кнопка.

Форма4 – Label1, Label2, TextBox1, ComboBox1, кнопка.

Рис.6 Форма1

Рис.7 Форма2

Рис.8 Форма3

Рис.9 Форма4

  1. Написать для всех кнопок соответствующие процедуры:

  • процедура для кнопки Средний балл на листе Деканат должна заполнять комбинированный список (ComboBox1) на форме UserForm1 фамилиями студентов с листа Успеваемость и открывать эту форму.

  • процедура для кнопки Отметки по предметам на листе Деканат должна заполнять комбинированный список на форме UserForm3 названиями учебных предметов с листа Успеваемость и открывать эту форму.

  • процедура для кнопки Сведения о студентах на листе Деканат должна заносить в текстовое окно на форме UserForm2 порядковый номер очередного студента и открывать эту форму.

  • процедура для кнопки График дежурств на листе Деканат должна заносить в текстовое окно TextBox1 на форме UserForm4 текущую дату, заполнять комбинированный список ComboBox1 номерами групп с листа Факультет и открывать эту форму.

  • процедура для кнопки Средний балл на форме UserForm1 должна вычислять средний балл студентов и выводить его в текстовое окно.

  • процедура для кнопки Просмотреть на форме UserForm3 должна выбирать фамилии студентов, которые получили отметку по выбранному предмету и выводить их в простой список ListBox1.

  • процедура для кнопки Заполнить на форме UserForm2 должна заполнять очередную строку листа Студенты сведениями из элементов управления формы UserForm2:

    • п/п из Textbox1,

    • Фамилия из Textbox2,

    • Год рождения из Textbox3.

    • вычислять количество лет и занести в столбец Возраст.

    • очищать текстовые окна Textbox2 и Textbox3.

    • закрывать форму.

  • процедура для кнопки Заполнить на форме UserForm4 должна заполнять очередную строку листа Дежурства сведениями из элементов управления UserForm4:

    • Дата из Textbox1 текущую дату,

    • Группа из ComboBox1,

    • для выбранной группы вычислять 20% от количества студентов (на листе Факультет) и заносить в столбец Количество.

    • очищать ComboBox1.

    • закрывать форму.

Основные свойства списков

  • List(i) – i-ый элемент в списке

  • Listindex – номер выбранного элемента в списке

  • Listcount – количество элементов в списке

  • RowSource – источник заполнения списка

Основные методы обработки списков

  • Additem – добавить элемент в список

  • Removeitem – удалить элемент из списка

  • Clear – удалить массив из списка

Удалить форму пользователя из проекта

В окне Project в контекстном меню формы выбрать Remove UserForm2

Выбрать Нет

Разработка инженерного проекта на vba

На первом листе Деканат создать 4 кнопки

  1. Средний балл

  2. Сведения о студентах

  3. Отметки по предметам

  4. График дежурств

Лист Факультет

  1. Группа

  2. Староста

  3. Колич. студентов

Заполнить сведениями для 8 групп

Лист Успеваемость

  1. № п.п

  2. Фамилия

  3. Химия

  4. Математика

  5. КИТ

Заполнить сведениями для 8 студентов

Лист Студенты

  1. № п.п

  2. Фамилия

  3. Год рождения

  4. Возраст

Заполнить только заголовок в первой строке

Лист Дежурства

  1. Дата

  2. Группа

  3. Количество

Заполнить только заголовок в первой строке

Программа для кнопки Средний балл на листе

заполняет комбинированный список (ComboBox1) на форме UserForm1 фамилиями студентов с листа Успеваемость и открывает эту форму.

i = 1

Do While Worksheets("Успеваемость").Cells(i, 1) <> "“

i = i + 1

Loop

j = i – 1

UserForm1.ComboBox1.RowSource = "Успеваемость!b2:b" & j

UserForm1.Show

Программа для кнопки Средний балл на форме (UserForm1)

вычисляет средний балл студентов и выводит его в текстовое окно.

n = ComboBox1.ListIndex + 1

s = 0

For i = 3 To 5

s = s + Worksheets("Успеваемость").Cells(n + 1, i)

Next

s = s / 3

TextBox1.Text = s

Программа для кнопки Отметки по предметам на листе

заполняет комбинированный список на форме UserForm3 названиями учебных предметов с листа Успеваемость и открывает эту форму.

For i = 3 To 5

UserForm3.ComboBox1.Additem Worksheets("Успеваемость").Cells(1, i)

Next

UserForm3.Show

Программа для кнопки Просмотреть на форме UserForm3

выбирает фамилии студентов, которые получили отметку по выбранному предмету и выводит их в простой список (ListBox1).

n = ComboBox1.ListIndex + 1

i = 1

Do While Worksheets("Успеваемость").Cells(i, n + 2) <> ""

i = i + 1

Loop

ListBox1.Clear

For k = 1 To i

If Worksheets(“ ").Cells(k, n + 2) =Val(TextBox1.Text) Then

ListBox1.AddItem Worksheets("Успеваемость").Cells(k, 2)

End If

Next

If ListBox1.ListCount = 0 Then

ListBox1.AddItem "Отсутствуют"

End If

Программа для кнопки Сведения о студентах на листе

Заносит в текстовое окно на форме UserForm2 порядковый номер очередного студента и открывает эту форму.

i = 1

Do While Worksheets("Студенты").Cells(i, 1) <> ""

i = i + 1

Loop

UserForm2.TextBox1.Text = i - 1

UserForm2.Show

Программа для кнопки Заполнить на форме UserForm2

Заполняет очередную строку листа Студенты сведениями из ЭУ UserForm2:

№ п/п из Textbox1,

Фамилия из Textbox2,

Год рождения из Textbox3.

Вычисляет количество лет и заносит в столбец Возраст.

Очищает Textbox2 и Textbox3.

Закрывает форму.

i = 1

Do While Worksheets("Студенты").Cells(i, 1) <> ""

i = i + 1

Loop

Worksheets("Студенты").Cells(i, 1) = Val(TextBox1.Text)

Worksheets("Студенты").Cells(i, 2) = TextBox2.Text

Worksheets("Студенты").Cells(i, 3) = TextBox3.Text

Worksheets("Студенты").Cells(i, 4) = 2010 – TextBox3.Text

TextBox2.Text = ""

TextBox3.Text = ""

UserForm2.Hide

Программа для кнопки График дежурств на листе

Заносит в текстовое окно TextBox1 на форме UserForm4 текущую дату, заполняет ComboBox1 номерами групп с листа Факультет и открывает эту форму.

UserForm4.TextBox1 = Date

UserForm4.ComboBox1.RowSource = Факультет!a2:a9"

UserForm4.Show

Программа для кнопки Заполнить на форме UserForm4

Заполняет очередную строку листа Дежурства сведениями из ЭУ UserForm4:

Дата из Textbox1 текущую дату,

Группа из ComboBox1,

Для выбранной группы вычисляет 20% от количества студентов (на листе Факультет) и заносит в столбец Количество.

Очищает ComboBox1.

Закрывает форму.

n = ComboBox1.ListIndex + 1

i = 1

Do While Worksheets("Дежурства").Cells(i, 1) <> ""

i = i + 1

Loop

Worksheets("Дежурства").Cells(i, 1) = TextBox1.Text

Worksheets("Дежурства").Cells(i, 2) = СomboBox1.Text

For k = 2 To 9

If Worksheets("Факультет").Cells(k, 1) = ComboBox1.Text Then

kol = Int(Worksheets("Факультет").Cells(k, 3) * 0,2

End If

Next

Worksheets("Дежурства").Cells(i, 3) = kol

ComboBox1.Text = ""

UserForm4.Hide