Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ИТиП_№10

.docx
Скачиваний:
0
Добавлен:
02.08.2026
Размер:
224 Кб
Скачать

Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

Московский технический университет связи и информатики

Кафедра «Системное программирование»

Лабораторная работа №10

по дисциплине «Информационные технологии и программирование»

«Векторная графика в VBA»

Выполнила:

студентка группы БФИ2203

Мячина Лада Андреевна

Проверил:

Клешнин Никита Геннадиевич

Москва, 2024 г.

Оглавление

Введение 3

Выполнение работы 4

Результат работы программы 7

Вывод 8

Введение

Умение эффективно работать с данными является ключевым навыком, особенно в контексте использования программных средств, таких как MS Excel. Приобретенные в ходе выполнения лабораторной работы навыки не только облегчат повседневные задачи, но и откроют двери к более сложным аналитическим и организационным возможностям. Лабораторная работа поможет улучшить свои навыки в работе с MS Excel и научиться работать с векторной графикой.

Цель работы: получение навыков использования векторной графики в MS Excel.

Задание: разработать программу, позволяющую выводить заданные числа на лист MS Excel, используя возможности векторной графики. В качестве исходного числа использовать значение ab Вашего варианта. Реализовать в программе возможность удаления нарисованных цифр. Подготовить отчет по лабораторной работе.

Выполнение работы

  1. Создать новый лист в MS Excel и разработать интерфейс программы, результат представлен на рисунке 1.

Рисунок 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

  1. Код макроса для удаления цифр, представлен в листинге 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

Результат работы программы

  1. Результат отображения цифр на листе, представлен на рисунке 2.

Рисунок 2 - Результат работы программы

Вывод

В ходе лабораторной работы были получены навыки работы с векторной графикой в Excel.

Соседние файлы в предмете Информационные технологии и программирование