ИТиП_№10
.docxМинистерство цифрового развития, связи и массовых коммуникаций Российской Федерации
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
Московский технический университет связи и информатики
Кафедра «Системное программирование»
Лабораторная работа №10
по дисциплине «Информационные технологии и программирование»
«Векторная графика в VBA»
Выполнила:
студентка группы БФИ2203
Мячина Лада Андреевна
Проверил:
Клешнин Никита Геннадиевич
Москва, 2024 г.
Оглавление
Введение 3
Выполнение работы 4
Результат работы программы 7
Вывод 8
Введение
Умение эффективно работать с данными является ключевым навыком, особенно в контексте использования программных средств, таких как MS Excel. Приобретенные в ходе выполнения лабораторной работы навыки не только облегчат повседневные задачи, но и откроют двери к более сложным аналитическим и организационным возможностям. Лабораторная работа поможет улучшить свои навыки в работе с MS Excel и научиться работать с векторной графикой.
Цель работы: получение навыков использования векторной графики в MS Excel.
Задание: разработать программу, позволяющую выводить заданные числа на лист MS Excel, используя возможности векторной графики. В качестве исходного числа использовать значение ab Вашего варианта. Реализовать в программе возможность удаления нарисованных цифр. Подготовить отчет по лабораторной работе.
Выполнение работы
Создать новый лист в MS Excel и разработать интерфейс программы, результат представлен на рисунке 1.
Рисунок 1 – Интерфейс программы
Код макроса для отображения цифр на листе, представлен в листинге 1.
Листинг 1 - Программный код для отображения цифр на листе
Sub M_Draw()
Dim zero(1 To 5, 1 To 2) As Single
Dim one(1 To 3, 1 To 2) As Single
Dim two(1 To 6, 1 To 2) As Single
Dim three(1 To 7, 1 To 2) As Single
Dim four(1 To 5, 1 To 2) As Single
Dim five(1 To 6, 1 To 2) As Single
Dim six(1 To 6, 1 To 2) As Single
Dim seven(1 To 3, 1 To 2) As Single
Dim eight(1 To 7, 1 To 2) As Single
Dim nine(1 To 6, 1 To 2) As Single
Dim numbers As String
numbers = Cells(2, 3)
For counter = 1 To Len(numbers)
If Mid(numbers, counter, 1) = "0" Then
zero(1, 1) = 100 + 40 * counter: zero(1, 2) = 60
zero(2, 1) = 100 + 40 * counter: zero(2, 2) = 100
zero(3, 1) = 120 + 40 * counter: zero(3, 2) = 100
zero(4, 1) = 120 + 40 * counter: zero(4, 2) = 60
zero(5, 1) = 100 + 40 * counter: zero(5, 2) = 60
Set s = ActiveSheet.Shapes. _
AddPolyline(zero)
ElseIf Mid(numbers, counter, 1) = "1" Then
one(1, 1) = 100 + 40 * counter: one(1, 2) = 80
one(2, 1) = 120 + 40 * counter: one(2, 2) = 60
one(3, 1) = 120 + 40 * counter: one(3, 2) = 100
Set s = ActiveSheet.Shapes. _
AddPolyline(one)
ElseIf Mid(numbers, counter, 1) = "2" Then
two(1, 1) = 100 + 40 * counter: two(1, 2) = 80
two(2, 1) = 100 + 40 * counter: two(2, 2) = 60
two(3, 1) = 120 + 40 * counter: two(3, 2) = 60
two(4, 1) = 120 + 40 * counter: two(4, 2) = 80
two(5, 1) = 100 + 40 * counter: two(5, 2) = 100
two(6, 1) = 120 + 40 * counter: two(6, 2) = 100
Set s = ActiveSheet.Shapes. _
AddPolyline(two)
ElseIf Mid(numbers, counter, 1) = "3" Then
three(1, 1) = 100 + 40 * counter: three(1, 2) = 60
three(2, 1) = 120 + 40 * counter: three(2, 2) = 60
three(3, 1) = 120 + 40 * counter: three(3, 2) = 80
three(4, 1) = 115 + 40 * counter: three(4, 2) = 80
three(5, 1) = 120 + 40 * counter: three(5, 2) = 80
three(6, 1) = 120 + 40 * counter: three(6, 2) = 100
three(7, 1) = 100 + 40 * counter: three(7, 2) = 100
Set s = ActiveSheet.Shapes. _
AddPolyline(three)
ElseIf Mid(numbers, counter, 1) = "4" Then
four(1, 1) = 100 + 40 * counter: four(1, 2) = 60
four(2, 1) = 100 + 40 * counter: four(2, 2) = 80
four(3, 1) = 120 + 40 * counter: four(3, 2) = 80
four(4, 1) = 120 + 40 * counter: four(4, 2) = 75
four(5, 1) = 120 + 40 * counter: four(5, 2) = 100
Set s = ActiveSheet.Shapes. _
AddPolyline(four)
ElseIf Mid(numbers, counter, 1) = "5" Then
five(1, 1) = 120 + 40 * counter: five(1, 2) = 60
five(2, 1) = 100 + 40 * counter: five(2, 2) = 60
five(3, 1) = 100 + 40 * counter: five(3, 2) = 80
five(4, 1) = 120 + 40 * counter: five(4, 2) = 80
five(5, 1) = 120 + 40 * counter: five(5, 2) = 100
five(6, 1) = 100 + 40 * counter: five(6, 2) = 100
Set s = ActiveSheet.Shapes. _
AddPolyline(five)
ElseIf Mid(numbers, counter, 1) = "6" Then
six(1, 1) = 120 + 40 * counter: six(1, 2) = 60
six(2, 1) = 100 + 40 * counter: six(2, 2) = 80
six(3, 1) = 100 + 40 * counter: six(3, 2) = 100
six(4, 1) = 120 + 40 * counter: six(4, 2) = 100
six(5, 1) = 120 + 40 * counter: six(5, 2) = 80
six(6, 1) = 100 + 40 * counter: six(6, 2) = 80
Set s = ActiveSheet.Shapes. _
AddPolyline(six)
ElseIf Mid(numbers, counter, 1) = "7" Then
seven(1, 1) = 100 + 40 * counter: seven(1, 2) = 60
seven(2, 1) = 120 + 40 * counter: seven(2, 2) = 60
seven(3, 1) = 120 + 40 * counter: seven(3, 2) = 100
Set s = ActiveSheet.Shapes. _
AddPolyline(seven)
ElseIf Mid(numbers, counter, 1) = "8" Then
eight(1, 1) = 100 + 40 * counter: eight(1, 2) = 60
eight(2, 1) = 100 + 40 * counter: eight(2, 2) = 100
eight(3, 1) = 120 + 40 * counter: eight(3, 2) = 100
eight(4, 1) = 120 + 40 * counter: eight(4, 2) = 60
eight(5, 1) = 100 + 40 * counter: eight(5, 2) = 60
eight(6, 1) = 100 + 40 * counter: eight(6, 2) = 80
eight(7, 1) = 120 + 40 * counter: eight(7, 2) = 80
Set s = ActiveSheet.Shapes. _
AddPolyline(eight)
ElseIf Mid(numbers, counter, 1) = "9" Then
nine(1, 1) = 100 + 40 * counter: nine(1, 2) = 100
nine(2, 1) = 120 + 40 * counter: nine(2, 2) = 80
nine(3, 1) = 120 + 40 * counter: nine(3, 2) = 60
nine(4, 1) = 100 + 40 * counter: nine(4, 2) = 60
nine(5, 1) = 100 + 40 * counter: nine(5, 2) = 80
nine(6, 1) = 120 + 40 * counter: nine(6, 2) = 80
Set s = ActiveSheet.Shapes. _
AddPolyline(nine)
End If
With s
.Name = "shape" & counter
.Line.ForeColor.RGB = vbRed
.Fill.ForeColor.RGB = vbWhite
.Line.Weight = 4
End With
Next counter
End Sub
Код макроса для удаления цифр, представлен в листинге 2.
Листинг 2 - Программный код для удаления цифр
Sub ClearShapes()
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If Left(shp.Name, 5) = "shape" Then
shp.Delete
End If
Next shp
End Sub
Результат работы программы
Результат отображения цифр на листе, представлен на рисунке 2.
Рисунок 2 - Результат работы программы
Вывод
В ходе лабораторной работы были получены навыки работы с векторной графикой в Excel.
