М.И. Бычков
Основы программирования на VBA
для Microsoft Excel
Утверждено Редакционно-издательским советом университета
в качестве учебного пособия
НОВОСИБИРСК
2010
УДК 004.434(075.8)
Б 959
Рецензенты: <...> ISBN 978-5-7782-1460-6
Учебное пособие предназначено для самостоятельного изучения
основ программирования в среде редактора Visual Basic for Applications (VBA) для Microsoft Excel: знакомит с основами объектноориентированного программирования, объектами Excel, средой и базовыми концепциями программирования, а также с основами разработки приложений в Excel, их отладкой и тестированием. <...> Подготовлено на кафедре вычислительной техники
УДК 004.434(075.8)
ISBN 978-5-7782-1460-6
© Бычков М.И., 2010
© Новосибирский государственный
технический университет, 2010
ВВЕДЕНИЕ
Visual Basic for Application (VBA) – это единый для Word, Exel и
других приложений MS Office объектно-ориентированный язык программирования высокого уровня, построенный на основе языка Visual
Basic. <...> В отличие от Visual Basic язык VBA можно использовать только
из приложений MS Office. <...> Язык VBA – мощный современный язык программирования, позволяющий решать любые современные задачи разработки приложений. <...> При этом, как правило, не
ставится задача создания программного проекта (приложения). <...> Вместе с тем программный проект является неотъемлемой частью
документа и хранится вместе с ним. <...> С такими документами, как правило, работают пользователи, которые либо не умеют
создавать программные проекты, либо даже не знают о возможности
их включения в документ. <...> Язык VBA кроме собственных возможностей обеспечивает доступ
к ресурсам приложений MS Office, к их библиотекам функций и объектам. <...> Часто программные проекты разрабатывают и применяют для автоматизации расчетов, анализа и представления данных, для прогнозирования результатов. <...> Язык VBA имеет доступ к средствам электронных таблиц и объектам приложений MS Office и позволяет дополнить Excel новыми средствами. <...> Синтаксически класс представляет отдельный модуль специального вида –
модуль класса. <...> Объектные модели всех <...>
Основы_программирования_на_VBA_для_Microsoft_Excel.pdf
Министерство образования и науки Российской Федерации
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
__________________________________________________________________________
М.И. Бычков
Основы программирования на VBA
для Microsoft Excel
Утверждено Редакционно-издательским советом университета
в качестве учебного пособия
НОВОСИБИРСК
2010
Стр.1
УДК 004.434(075.8)
Б 959
Рецензенты:
В.С. Поздняков, канд. техн. наук, директор ООО «НРЦДО»;
Е.Л. Романов, канд. техн. наук
Бычков М.И.
Б 959 Основы программирования на VBA для Microsoft Excel :
учеб. пособие / М.И. Бычков. – Новосибирск : Изд-во НГТУ,
2010. – 99 с.
ISBN 978-5-7782-1460-6
Учебное пособие предназначено для самостоятельного изучения
основ программирования в среде редактора Visual Basic for Applications
(VBA) для Microsoft Excel: знакомит с основами объектноориентированного
программирования, объектами Excel, средой и базовыми
концепциями программирования, а также с основами разработки
приложений в Excel, их отладкой и тестированием.
Изучение материала, представленного в пособии, позволит не
только начать создавать собственные приложения, но и более осмысленно
работать с уже готовыми Windows-совместимыми программными
продуктами.
Пособие рекомендуется студентам заочной формы обучения экономических
специальностей, знакомых с табличным процессором Excel
и операционной системой Windows, но будет полезно и студентам
других специальностей, а также тем, кто проявляет интерес к программированию
и впервые сталкивается с необходимостью написания
программ.
Подготовлено на кафедре вычислительной техники
УДК 004.434(075.8)
ISBN 978-5-7782-1460-6
© Бычков М.И., 2010
© Новосибирский государственный
технический университет, 2010
Стр.2
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ ........................................................................................................... 3
Области применения VBA ................................................................................ 4
Основные этапы развития программирования ............................................... 5
Основные сведения об объектно-ориентированном программировании
...................................................................................................................... 6
1. ОБЪЕКТЫ И ОБЪЕКТНАЯ МОДЕЛЬ EXCEL ...................................... 10
Объект Application (Приложение) ................................................................. 15
Объект Workbook (Рабочая книга) ................................................................. 20
Объект Worksheet (Рабочий лист) .................................................................. 21
Объект Range (Диапазон) ............................................................................... 22
Объект Chart (Диаграмма) .............................................................................. 25
Объект PivotTable (Сводная таблица) ............................................................ 27
Объект QueryTable (Таблица запроса) ........................................................... 29
2. СРЕДА ПРОГРАММИРОВАНИЯ – РЕДАКТОР VBA ........................... 30
Общие сведения о редакторе VBA ................................................................ 30
Главное окно редактора VBA ......................................................................... 31
Окно проводника проекта (Project Explorer) ................................................. 33
Окно пользовательских форм (UserForm) и панель элементов управления
(Toolbox) ................................................................................................ 35
Окно свойств (Properties Window) ................................................................. 36
Окно редактирования кода (Code) ................................................................. 37
Окно просмотра объектов (Object Browser) .................................................. 39
3. СИНТАКСИС И ПРОГРАММНЫЕ КОНСТРУКЦИИ VBA ................ 41
Основы синтаксиса .......................................................................................... 41
Алфавит VBA .................................................................................................. 42
Типы данных .................................................................................................... 43
Операнды, операции и выражения ................................................................ 45
97
Стр.97
Переменные и константы ............................................................................... 48
Операторы ........................................................................................................ 51
Процедуры и функции .................................................................................... 59
Диалоговые окна ............................................................................................. 62
Массивы ........................................................................................................... 64
Файлы ............................................................................................................... 67
Элементы управления ..................................................................................... 68
4. ОСНОВЫ РАЗРАБОТКИ ПРИЛОЖЕНИЙ В MS EXCEL .................... 72
Создание и использование форм .................................................................... 72
Элементы управления и их применение ....................................................... 75
Вызов функции рабочего листа из программы на VBA ............................. 87
Создание пользовательских функций рабочего листа ................................. 87
Макросы ........................................................................................................... 88
5. ОТЛАДКА И ТЕСТИРОВАНИЕ ПРОГРАММНОГО ПРОЕКТА ....... 90
Виды ошибок ................................................................................................... 90
Средства отслеживания и исправления ошибок ........................................... 91
Тестирование операторов ............................................................................... 92
Окно быстрого выполнения ........................................................................... 92
Использование Option explicit ........................................................................ 93
Использование точек останова ....................................................................... 94
Просмотр значений переменных .................................................................... 95
Окна наблюдений ............................................................................................ 95
98
Стр.98