Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Основы алгоритмизации и программирования на VBA

Покупка
Артикул: 797711.01.99
Доступ онлайн
2 000 ₽
В корзину
В учебнике дается описание языка программирования VBA в объеме, необходимом для иллюстрации основных понятий. Рассматриваются базовые структуры алгоритмов, типовые алгоритмы работы с массивами, а также основные приемы программирования. Также описаны средства ввода и вывода информации программы на VBA, применение процедур и функций. Учебник является важной составляющей подготовки специалистов по программам высшего образования. Предназначен для изучения основ алгоритмизации и начального знакомства с программированием на языке VBA в рамках курса «Информатика» студентами всех специальностей 1-го курса института ЭУПП НИТУ «МИСиС», а также для самостоятельного изучения.
Андреева, О. В. Основы алгоритмизации и программирования на VBA : учебник / О. В. Андреева, А. И. Широков. - Москва : Изд. Дом НИТУ «МИСиС», 2021. - 188 с. - ISBN 978-5-907227-44-6. - Текст : электронный. - URL: https://znanium.com/catalog/product/1915582 (дата обращения: 26.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Москва  2021

М ИНИС ТЕРС ТВО НАУКИ И ВЫСШ ЕГО О Б РА З О ВА Н И Я РФ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ОБРАЗОВАНИЯ

«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ 

«МИСиС»

ИНСТИТУТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И КОМПЬЮТЕРНЫХ НАУК

Кафедра инженерной кибернетики

О.В. Андреева 
А.И. Широков

ОСНОВЫ АЛГОРИТМИЗАЦИИ  
И ПРОГРАММИРОВАНИЯ НА VBA

Учебник

Рекомендовано редакционно-издательским 
советом университета

№ 3935

УДК 004.438 
 
А65

Р е ц е н з е н т ы : 

канд. техн. наук, доцент кафедры моделирования  
в экономике и управлении Р Г Г У  С.В. Никифоров; 

канд. техн. наук, доцент НИТУ «МИСиС» С.В. Громов

Андреева О.В.

А65  
Основы алгоритмизации и программирования на 

VBA : учебник / О.В. Андреева, А.И. Широков. – М. : 
Изд. Дом НИТУ «МИСиС», 2021. – 188 с.

ISBN  978-5-907227-44-6

В учебнике дается описание языка программирования VBA в 

объеме, необходимом для иллюстрации основных понятий. Рассматриваются 
базовые структуры алгоритмов, типовые алгоритмы 
работы с массивами, а также основные приемы программирования. 
Также описаны средства ввода и вывода информации программы 
на VBA, применение процедур и функций. Учебник является важной 
составляющей подготовки специалистов по программам высшего 
образования.

Предназначен для изучения основ алгоритмизации и начального 
знакомства с программированием на языке VBA в рамках 
курса «Информатика» студентами всех специальностей 1-го курса 
института ЭУПП НИТУ «МИСиС», а также для самостоятельного 
изучения.

УДК  004.438

 О.В. Андреева,  

А.И. Широков, 2021

ISBN  978-5-907227-44-6
 НИТУ «МИСиС», 2021

Содержание

ПРЕДИСЛОВИЕ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
ВВЕДЕНИЕ  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
ГЛАВА 1. ОСНОВЫ АЛГОРИТМИЗАЦИИ И 
ПРОГРАММИРОВАНИЯ  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.1. Понятие алгоритма . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.1.1. Понятие о структурном подходе к разработке 
алгоритмов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.2. Метод пошаговой детализации . . . . . . . . . . . . . . . 15

1.2. Основные понятия программирования . . . . . . . . . . . . 16
1.3. Этапы решения задач . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.4. Основы языка VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1.4.1. Переменные. Типы данных . . . . . . . . . . . . . . . . . . 23
1.4.2. Константы (литералы) . . . . . . . . . . . . . . . . . . . . . . 27
1.4.3. Операторы объявления. Инициализация 
переменных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.4.4. Математические операторы. Выражения . . . . . . . 29
1.4.5. Преобразование типов . . . . . . . . . . . . . . . . . . . . . . 30
1.4.6. Логические операторы. Выражения . . . . . . . . . . . 32
1.4.7. Основные операторы VBA . . . . . . . . . . . . . . . . . . . 33
1.4.8. Ввод-вывод данных  . . . . . . . . . . . . . . . . . . . . . . . . 45
1.4.9. Форматирование  . . . . . . . . . . . . . . . . . . . . . . . . . . 55

1.5. Среда разработки  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
1.6. Правила построения программного кода  . . . . . . . . . . 68

ГЛАВА 2. Организация циклических программ  . . . . . . . . . 69

2.1. Циклы по счетчику . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.2. Циклы по условию  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
2.3. Вложенные циклы. Вычисление рядов . . . . . . . . . . . . 82
Вопросы для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . . 86

ГЛАВА 3. Организация разветвлений.  
Разветвления в цикле  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

3.1. Организация разветвлений. Условный оператор.  
If-блок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.2. Циклы с разветвлением . . . . . . . . . . . . . . . . . . . . . . . . 93
3.3. Составление программ для обработки  
потока данных  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Вопросы для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . . 98

ГЛАВА 4. Массивы. Типовые алгоритмы обработки 
одномерных массивов  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

4.1. Одномерные массивы . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.2. Ввод-вывод массивов  . . . . . . . . . . . . . . . . . . . . . . . . . 102
4.3. Алгоритмы обработки одномерных массивов . . . . . . 103
Вопросы для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . 125

ГЛАВА 5. Матрицы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

5.1. Описание двухмерных массивов (матриц).  
Ввод, вывод матриц . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.2. Работа с матрицами на основе алгоритмов  
обработки одномерных массивов  . . . . . . . . . . . . . . . . . . . 127
5.3. Техника работы с квадратными матрицами . . . . . . . 133
Вопросы для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . 136

ГЛАВА 6. Подпрограммы, процедуры и функции  . . . . . . . 138

6.1. Подпрограммы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
6.2. Описание процедуры. Обращение к процедуре.  
Формальные и фактические параметры . . . . . . . . . . . . . . 139
6.3. Функция. Оператор-функция. Подпрограмма- 
функция. Описание и обращение  . . . . . . . . . . . . . . . . . . . 142
6.4. Особенности использования переменных  
в процедурах и функциях  . . . . . . . . . . . . . . . . . . . . . . . . . 144
Вопросы для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . 151

ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО  
ВЫПОЛНЕНИЯ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

Задания к главе 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

Задания I уровня  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Задания II уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Задания III уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

Задания к главе 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

Задания I уровня  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Задания II уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Задания III уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

Задания к главе 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

Задания I уровня  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Задания II уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Задания III уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

Задания к главе 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

Задания I уровня  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

Задания II уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Задания III уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

Задания к главе 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

Задания I уровня  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Задания II уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Задания III уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

БИБЛИОГРАФИЧЕСКИЙ СПИСОК  . . . . . . . . . . . . . . . . . . 174
Приложение 1. Встроенные типы . . . . . . . . . . . . . . . . . . . . . 176
Приложение 2. Параметры и специальные символы  
функции format() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

ПРЕДИСЛОВИЕ

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

Настоящий учебник предназначен для приобретения компетенций 
в области алгоритмизации задач и разработки приложений 
на базе языка программирования Visual Basic for 
Application (VBA). При этом следует отметить, что авторы 
не ставили цели знакомства со всеми возможностями, предоставляемыми 
языком VBA, а рассматривали лишь ограниченное 
подмножество средств, необходимых для решения предлагаемых 
задач в рамках изучаемого курса.

Учебник содержит введение, шесть глав и два приложения. 

Первая глава в основном посвящена вопросам алгоритмизации 
и изучению базовых приемов программирования. В ней 
дается представление об алгоритмическом методе, используемом 
при решении задач на компьютере, и современных подходах 
к разработке алгоритмов и программ; рассматриваются 
основные аспекты и этапы решения задач на компьютере, излагаются 
приемы и методы разработки и проверки правильности 
программ. Также дается краткое описание основных понятий 
языка VBA и начальные сведения об использовании среды 
разработки.

Главы со 2 по 6 содержат теоретическое введение, в котором 

приводятся типовые алгоритмы и приемы решения задач соответствующего 
класса, проиллюстрированные примерами 
программ, а также контрольные вопросы, которые могут использоваться 
как для самопроверки, так и для контроля преподавателем.


В конце приводятся задачи для самостоятельного выполнения.

ВВЕДЕНИЕ

Общие сведения об операционной системе Windows. Подавляющее 
большинство компьютеров, используемых в России, – 
это так называемые IBM PC совместимые персональные 
компьютеры. Для таких ЭВМ широкое распространение получила 
операционная система Windows компании Microsoft.

Операционная система – это группа взаимосвязанных 

программ, выступающая посредником между аппаратными 
средствами ЭВМ и пользователем, обеспечивающая управление 
процессами и ресурсами ЭВМ. В частности, Windows распределяет 
ресурсы компьютера между всеми прикладными 
программами (это все программы, кроме самой операционной 
системы), обеспечивает взаимодействие разных устройств и 
возможность прерывания процессора, организует регулярный 
опрос клавиатуры, мыши и других устройств, с помощью которых 
пользователь общается с компьютером. 

Windows – графическая операционная система для компьютеров 
платформы IBM PC. Основная идея – принцип рабочего 
стола. Создатели операционной системы не только оформили 
внешний вид «Рабочего стола» как письменный стол (папки, 
документы, часы), но и основные приемы работы пользователя 
спроектировали аналогично приемам работы за письменным 
столом. 

Приложения Microsoft Office и общие принципы их организации. 
Приложения Microsoft Office: Word – программа 
обработки текстов, Excel – работа с таблицами, СУБД 
Access – работа с базами данных, Power Point – создание пре-
зентаций – изучаются в курсе «Информатика».

Работа пользователя с этими приложениями организо-

вана в соответствии с объектно-ориентированным прин-
ципом. Это означает, что все создаваемое и редактируемое 
пользователем при работе с приложением – это объекты 
(например, в Word – абзац, рисунок, в Excel – ячейка, диа-
грамма, в Access – таблица, запрос). Объекты имеют свой-
ства и методы. Свойства объекта – его характеристики, 
которые можно менять (например, цвет, размер). Методы – 
это действия, которые с объектом можно произвести (напри-

мер, переместить, удалить). Меню различных приложений 
Microsoft Office устроено по одному и тому же принципу и 
содержит только те различия, которые отвечают за спец-
ифику приложения. Результат работы в Word, Excel или 
Access – это некий документ, для которого существует стан-
дартный набор операций: создание, сохранение, удаление, 
открытие и т.п. Поэтому, например, пункт меню «Файл» 
во всех трех приложениях имеет практически одинаковое 
содержимое: распечатать документ, изменить свойства до-
кумента, сделать предварительный просмотр, посмотреть 
последние открытые документы приложения – все это ак-
туально и в Word, и в Excel, и в Access и делается пример-
но одинаково. Пункты меню «Правка», «Вид», «Вставка», 
«Сервис», «Окно», «Справка» присутствуют в различных 
приложениях, несут одинаковую смысловую нагрузку и 
имеют похожее содержимое.

Панели инструментов – это группы часто употребляе-

мых команд, дублирующие «глубоко» расположенные пун-
кты меню в виде кнопок. Большинство приложений Microsoft 
Office оперируют такими панелями. 

Использование Windows-приложений существенно расши-

ряет сферу использования компьютеров. Однако стандартные 
средства этих приложений не всегда позволяют решить по-
ставленную задачу в полном объеме. Иногда требуется допол-
нительно составить отдельную программу с использованием 
средств, отсутствующих в этом Windows-приложении. 

Visual Basic.NET 2008 (VB.NET) – это объектно-ориенти-

рованный язык визуального программирования высокого 
уровня. Этот язык предназначен для разработки Windows-
приложений и Web-приложений. Одним из основных ком-
понентов платформы .NET является Framework. Framework 
содержит все функции операционной системы и делает их до-
ступными приложению через методы. 

Успех VB в первую очередь являлся следствием простоты и 

удобства этого языка. С появлением Framework VB стал не ме-
нее мощным, чем любой другой язык. Вряд ли можно найти 
что-то, что нельзя сделать, применяя VB.NET, но можно сде-
лать с помощью другого языка. На VB написано больше при-

ложений, чем на любом другом языке. Вот благодаря чему VB 
стал одним из лидеров в программировании: 

1) стандартный 
пользовательский 
интерфейс 
пишется 

на нем очень быстро и непринужденно. Полученный результат 
выходит стандартным в применении и каким угодно «наворо-
ченным» по внешнему виду; 

2) удобный, быстрый, легко реализуемый доступ к базам 

данных; 

3) глубокая интеграция с Microsoft Office. 

Гигантский плюс VB – время разработки приложения ми-

нимально. И это ценится. Там, где требуется высокая скорость 
разработки приложения, – для VB практически нет альтер-
нативы. Очень сильное преимущество VB в его, скажем так, 
распространенности или стандартизованности. VB доступен 
в виде VBA во всех офисных приложениях, а также в некото-
рых других продуктах.

Visual Basic for Application – язык объектно-ориентиро-

ванного программирования. Настоящий учебник позволит по-
знакомиться с языком Visual Basic for Application (VBA), при 
помощи которого можно выполнять обработку данных в лю-
бом из приложений Windows, что позволяет осуществлять вза-
имодействие со всеми приложениями Windows, существенно 
расширяя их функциональные возможности, и, написав про-
грамму в одном из приложений, ее можно использовать в лю-
бом другом.

Язык VBA является объектно-ориентированным языком, 

встроенным в среду Windows. Объектно-ориентированное про-
граммирование (ООП) – новый подход к программированию, 
связанный с увеличением объема и сложности программного 
обеспечения. Базовые отличия VBA как языка ООП будут рас-
смотрены позднее вне этого учебника.

Объектно-ориентированное программирование по сравне-

нию с использованием традиционных алгоритмических язы-
ков существенно расширяет возможности и облегчает раз-
работку сложных программных систем в большой степени 
благодаря наличию упомянутой выше библиотеке классов, 
при использовании которой отпадает необходимость в написа-
нии кодов многих типовых алгоритмов. 

Однако при решении научно-технических задач алгорит-

мическая составляющая является весьма существенной. В настоящем 
учебнике вопросам алгоритмизации и изучению базовых 
приемов программирования уделяется значительное 
внимание. Вместе с тем рассматриваются и используются и 
объектные свойства языка, на наглядных примерах демонстрируются 
предоставляемые ими новые возможности.

ГЛАВА 1. ОСНОВЫ АЛГОРИТМИЗАЦИИ 

И ПРОГРАММИРОВАНИЯ

1.1. Понятие алгоритма

Алгоритмом называется четкое описание последовательности 
действий, которые необходимо выполнить для 
решения задачи. Решение практически любой задачи требует 
получения результата по заданным исходным данным. 
То есть можно сказать, что алгоритм описывает последовательный 
процесс преобразования исходных данных в результат.


Разработать алгоритм решения задачи означает разбить 
задачу на последовательно выполняемые шаги (этапы), 
причем результаты выполнения предыдущих этапов 
могут использоваться при выполнении последующих. При 
этом должны быть четко указаны как содержание каждого 
этапа, так и порядок выполнения этапов. Отдельный этап 
(шаг) алгоритма либо представляет собой другую, более 
простую задачу, алгоритм решения которой разработан ра-
нее, либо должен быть достаточно простым и понятным без 
объяснений.

Четко сформулированная последовательность правил, 

описывающих этот процесс, и является алгоритмом.

1.1.1. Понятие о структурном подходе 

к разработке алгоритмов

Основные структуры алгоритмов – это ограниченный набор 

блоков и стандартных способов их соединения для выполне-
ния типичных последовательностей действий.

Использование приводимых ниже структур рекомендуется 

при применении так называемого структурного подхода к раз-
работке алгоритмов и программ. Структурный подход предпо-
лагает использование только нескольких основных структур, 
комбинация которых дает все многообразие алгоритмов и про-
грамм.

К основным структурам относятся приведенные ниже 

структуры.

1. Следование (рис. 1.1) – последовательное размещение 

блоков и групп блоков. В программе реализуется последова-
тельным размещением операторов.

Рис. 1.1. Типовая структура Следование

2. Цикл применяется при необходимости выполнить ка-

кие-либо вычисления несколько раз до выполнения некоего 
условия. Тело цикла – та последовательность действий, кото-
рая выполняется многократно (в цикле). Начальные присваи-
вания – задание начальных значений тем переменным, кото-
рые используются в теле цикла. Особенность цикла в том, что 
эта структура может реализоваться в двух вариантах. В пер-
вом случае цикл всегда выполняется хотя бы один раз, так как 
первая проверка условия выхода из цикла происходит после 
того, как тело цикла выполнено (рис. 1.2, а). Во втором случае 
проверка условия выхода из цикла производится до выполне-
ния тела цикла, и если при первой проверке условие выполня-
ется, то тело цикла не выполняется ни разу (рис. 1.2, б).

а

б

Рис. 1.2. Типовая структура Цикл: 

а – с предусловием; б – с постусловием

Доступ онлайн
2 000 ₽
В корзину