ЛАБОРАТОРНАЯ РАБОТА №7
РАБОТА С МАКРОСАМИ В MS EXCEL
Задание №1
Имеются данные о студентах: фамилия, номер зачетной книжки, экзаменационные баллы (4 дисциплины). Вычислить рейтинг студента (средний балл), максимальный и минимальный баллы, средний балл за каждый экзамен. Число студентов должно быть задано заранее.
Чтобы при открытии книги макрос запускался автоматически, сохраните его с именем "Auto_open". Ограничьте область и сделайте шапку для таблицы:
Sub Auto_Open()
Dim N As Integer
N = InputBox("Сколько студентов в группе?")
ActiveSheet.Name = "Рейтинги"
Dim S As String
S = "A1:G" & CStr(N + 1)
Worksheets("Рейтинги").ScrollArea = S
Worksheets("Рейтинги").Range("A1").Value = "Фамилия Имя"
Worksheets("Рейтинги").Range("B1").Value = "Номер зачетной книжки"
Dim TestName As String
TestName = InputBox("Название экзамена")
Worksheets("Рейтинги").Range("C1").Value = TestName
TestName = InputBox("Название экзамена ")
Worksheets("Рейтинги").Range("D1").Value = TestName
TestName = InputBox("Название экзамена ")
Worksheets("Рейтинги").Range("E1").Value = TestName
TestName = InputBox("Название экзамена ")
Worksheets("Рейтинги").Range("F1").Value = TestName
Worksheets("Рейтинги").Range("G1").Value = " Рейтинги"
Worksheets("Рейтинги").Range("A1:G1").HorizontalAlignment = xlCenter
Worksheets("Рейтинги").Range("A1:G1").Font.Bold = True
Worksheets("Рейтинги").Range(S).Borders.LineStyle = xlSolid
Worksheets("Рейтинги").Range(S).Borders.Color = RGB(0, 0, 120)
Range("A1:G1").Interior.ColorIndex = 15
End Sub
Теперь пользователь может вводить данные, но лишь в те ячейки, которые указаны в ScrollArea.
ЛАБОРАТОРНАЯ РАБОТА №7
РАБОТА С МАКРОСАМИ В MS EXCEL
Задание №1
Имеются данные о студентах: фамилия, номер зачетной книжки, экзаменационные баллы (4 дисциплины). Вычислить рейтинг студента, максимальный и минимальный балл, средний балл, средний балл за каждый экзамен. Число студентов должно быть задано заранее.
Чтобы при открытии книги макрос запускался автоматически, сохраните его с именем "Auto_open". Ограничьте область и сделайте шапку для таблицы:
Sub Auto_Open()
Dim N As Integer
N = InputBox("Сколько студентов в группе?")
ActiveSheet.Name = "Рейтинги"
Dim S As String
S = "A1:G" & CStr(N + 1)
Worksheets("Рейтинги").ScrollArea = S
Worksheets("Рейтинги").Range("A1").Value = "Фамилия Имя"
Worksheets("Рейтинги").Range("B1").Value = "Номер зачетной книжки"
Dim TestName As String
TestName = InputBox("Название экзамена")
Worksheets("Рейтинги").Range("C1").Value = TestName
TestName = InputBox("Название экзамена ")
Worksheets("Рейтинги").Range("D1").Value = TestName
TestName = InputBox("Название экзамена ")
Worksheets("Рейтинги").Range("E1").Value = TestName
TestName = InputBox("Название экзамена ")
Worksheets("Рейтинги").Range("F1").Value = TestName
Worksheets("Рейтинги").Range("G1").Value = " Рейтинги"
Worksheets("Рейтинги").Range("A1:G1").HorizontalAlignment = xlCenter
Worksheets("Рейтинги").Range("A1:G1").Font.Bold = True
Worksheets("Рейтинги").Range(S).Borders.LineStyle = xlSolid
Worksheets("Рейтинги").Range(S).Borders.Color = RGB(0, 0, 120)
Range("A1:G1").Interior.ColorIndex = 15
End Sub
Теперь пользователь может вводить данные, но лишь в те ячейки, которые указаны в ScrollArea.
Задание №2
Добавьте вычисление рейтинга и назначьте новому макросу сочетание клавиш Ctrl+i.
Sub Go()
Dim i As Integer
For i = 2 To N + 1
With Worksheets("Рейтинги")
Range("G" & CStr(i)).Formula = "=(C" & CStr(i) & "+D" & CStr(i) & "+E" & CStr(i) & "+F" & CStr(i) & ")/4"
End With
Next i
End Sub
Поскольку здесь используется значение N, заданное в предыдущем макросе, то необходимо сделать эту переменную глобальной. Для этого вынесем её за пределы процедуры.
Задание №3
В первую процедуру добавьте подсказку для пользователя:
Worksheets("Рейтинги").Range("K2").Value = "Введите фамилии и экзаменационные баллы. Затем нажмите комбинацию клавиш Ctrl+i"
Worksheets("Рейтинги").Range("K2").Font.Color = RGB(120, 0, 0)
Worksheets("Рейтинги").Range("K2:N5").Merge
Worksheets("Рейтинги").Range("K2").WrapText = True
Дополните код оставшимися операциями.
Итог работы:
Задание №2
Добавьте вычисление рейтинга и назначьте новому макросу сочетание клавиш Ctrl+i.
Sub Go()
Dim i As Integer
For i = 2 To N + 1
With Worksheets("Рейтинги")
Range("G" & CStr(i)).Formula = "=(C" & CStr(i) & "+D" & CStr(i) & "+E" & CStr(i) & "+F" & CStr(i) & ")/4"
End With
Next i
End Sub
Поскольку здесь используется значение N, заданное в предыдущем макросе, то необходимо сделать эту переменную глобальной. Для этого вынесем её за пределы процедуры.
Задание №3
В первую процедуру добавьте подсказку для пользователя:
Worksheets("Рейтинги").Range("K2").Value = "Введите фамилии и экзаменационные баллы. Затем нажмите комбинацию клавиш Ctrl+i"
Worksheets("Рейтинги").Range("K2").Font.Color = RGB(120, 0, 0)
Worksheets("Рейтинги").Range("K2:N5").Merge
Worksheets("Рейтинги").Range("K2").WrapText = True