Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Приемы программирования в среде Visual Basic for Application. Учебное пособие
.pdf
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
«Казанский государственный технологический университет»
Ф.И.
Воробьева, Е.С. Воробьев
ПРИЕМЫ ПРОГРАММИРОВАНИЯ
В СРЕДЕ VISUAL BASIC FOR APPLICATION
MS OFFICE
Учебное
пособие
Казань
КГТУ
2010

УДК
658.26:66.094
Воробьева,
Ф.И.
Приемы программирования в среде VISUAL BASIC for
APPLICATION: учебное пособие / Ф.И. Воробьева, Е.С. Воробьев. – Ка-
зань: Изд-во Казан. гос. технол. ун-та; 2010. − 104 с.
ISBN 978-5-7882-0825-1
Рассмотрены основные элементы среды разработки программ, а
также базовые конструкции алгоритмического языка Visual Basiс for Application. Показаны примеры разработки пользовательских функций Ехсel
Продемонстрированы приемы работы с отладчиком программ. Даны общие принципы и примеры создания пользовательских программ (макросов) и форм для создания своих приложений в среде Excel.
Пособие может быть использовано при изучении дисциплин «Информатика», «Применение ЭВМ в технологии» и «Применение ЭВМ в
расчетах», а также при курсовом и дипломном проектировании.
Предназначено для студентов очной и заочной форм обучения специальностей 240802.65 «Основные процессы химических производств и
химическая кибернетика» и 240801 «Машины и аппараты химических
производств», обучающихся по направлению 240800 «Энерго- и ресурсосберегающие процессы в химической технологии, нефтехимии и биотехнологии».
Подготовлено на кафедре общей химической технологии.
Печатается по решению редакционно-издательского совета
Казанского государственного университета.
Рецензенты: профессор КГТУ им. Туполева О.Ш. Даутов
старший научный сотрудник
Казанского научного центра РАН Д.В. Чачков
ISB N 978-5-7882-0825-1 Воробьева Ф.И., Воробьев Е.С.,
2010
Казанский
государственный
технологический университет, 2010
- 2 -

Введение
Visual Basic for Application (VBA) это среда программирования в
пакете программ Microsoft Office. Средствами VBA можно создавать
функции пользователя, которые используются на листах электронных
таблиц, макросы (макро команды) для создания новых команд из
комбинаций стандартных команд приложений, если их надо часто
повторять в том же порядке, программные надстройки для специальных программных решений внутри приложений Microsoft Office.
Основные понятия объектно-ориентированного
программирования
Объектно-ориентированное программирование позволяет существенно упростить процесс создания программ. Основами данного
способа программирования являются объекты. Объекты – представляют собой законченные элементы, которые мы используем во время
программирования. Например, мы строим различные геометрические
фигуры, каждая из них может быть объектом. Возьмем прямоугольник, чтобы его построить нам надо знать его ширину и длину, которые являются его (прямоугольника) свойствами (Properties). Если мы
не знаем объекта прямоугольник, то нам надо будет нарисовать четыре линии соответствующих длин и правильно их сориентировать друг
относительно друга. Когда мы имеем объект прямоугольник, то все
операции его построения уже заложены в самом объекте. Например,
нам надо расширить наш объект новым свойством (цветом). Создаем
для него новое свойство «Цвет заливки» и пишем подпрограмму для
его реализации.
Показанный пример объекта весьма прост. В реальных условиях
каждый объект обладает:
• свойствами (Properties), которые задаются конкретными значения-
ми (длина и ширина). Их можно считать или изменять, задав нужное значение;
• методами (Methods), которые реализуют какие-либо действия с
объектом, например, изменить его размеры, цвет и т.п.;
• событиями (Events), в которых обычно и реализуются программы
пользователя для управления данным объектом, например, щелчок
мышки или ее движение через объект и т.п.
Каждый объект может включать в себя другие объекты, и сам
входить частью в объекты более высокого уровня. Например, наш
- 3 -

объект прямоугольник, может включать в себя четыре объекта линий,
а линия может состоять из двух точек. Также можно двигаться и в
другую сторону, включая прямоугольник в более сложные объекты.
Вся структура пакета программ Microsoft Office построена на
этой же идеологии. Каждая программа является объектом с именем
Application (Приложение). В свойствах этого объекта мы можем узнать имя самой программы (Word, Excel и т.п.), параметры окна, открытые файлы документов и т.д. С использованием методов мы можем открывать и закрывать документы и саму программу, изменять
размеры рабочего окна программы и т.п. Если мы хотим создать свою
процедуру запуска программы, то мы можем записать в событие объекта свой программный код, например, при запуске Word, обязательно открывать нужный документ. В свою очередь каждый документ
тоже является объектом, содержащим более мелкие объекты, так, например, электронная таблица содержит листы, а лист имеет ячейки.
Хорошее понимание объектно-ориентированного программирования и умение использовать стандартные объекты существенно упростит создание ваших программ.
Прежде чем перейти к самим приемам работы в среде программирования VBA, познакомимся с размещением программ пользователей в документах.
Модули
Все программы Visual Basic for Application сохраняются в рабочих
файлах Microsoft Office, это могут быть документы Word, электронные
таблицы Excel и файлы других программ пакета. Обычно программы
VBA находятся в специальной части файлов, называемой Modules (модули). Модуль VВА содержит исходный код программы – текстовое
представление инструкций по выполнению вычислений. Каждый файл
может иметь до нескольких модулей. Модули объединены в общий
объект Project (проект). Существует несколько типов модулей:
• модули объектов документа, которые содержат нужные программ-
ные реализации для событий этих объектов. Например, если мы
создали экранную форму, которую надо запускать одновременно с
открытием документа, то процедуру ее показа надо записать в событие книги - Open;
• экранные формы, которые позволяют создавать свои рабочие окна
для реализации ваших собственных задач. Формально данные модули состоят из двух – собственно экранной формы и программно-
- 4 -

го кода для реализации необходимых событий ее объектов;
• модули программ – основной элемент VBA, который содержит
программный код для функций пользователя, макросов и внутренних подпрограмм, необходимых для работы как функций и макросов, так и разработанных экранных форм;
• модули классов (объектов), которые создают новые объекты (клас-
сы) на основе уже имеющихся объектов приложения.
Первая группа модулей существует в документе всегда, для других групп имеются методы для их создания или загрузки из соответствующих файлов.
Чтобы создать модуль в проекте необходимо выполнить команду Insert => Module (UserForm, Class Module), что приведет к
созданию выбранного модуля и изменению содержимого окна проекта. Появится строка Моdulе1, соответствующая вставленному модулю в окне проекта. Модуль может быть создан автоматически, когда
пакет (Word, Excel) выполняет запись макроса, ему присваивается
имя ModuleN, где N – первый свободный номер в проекте модулей
во время текущего сеанса работы. Например, в первый раз, когда вы
сохраняете записанный макрос в Книге1.xls, Excel создает модуль с
именем Module1. Если вы продолжаете записывать макросы в том
же сеансе работы и сохранять их там же, Excel продолжает сохранять
записанные макросы в том же модуле Module1 до тех пор, пока вы
не выберете другую рабочую книгу. Если позже в том же сеансе работы вы опять захотите сохранить записанные макросы в Книге1.xls,
то будет добавлен другой модуль с именем Module2.
Любой из добавляемых модулей может быть импортирован в
проект, используя команду File => Import File…, затем надо показать нужный файл для загрузки. Эта команда бывает очень удобной,
для внесения в проект набора стандартных процедур, которые вы используете при создании своих программ. Чтобы создать такие файлы
для загрузки, нужно необходимые модули экспортировать в файл по
команде File => Export File…
Для удаления модуля следует выполнить следующие команды:
1) кликнуть правой кнопкой мышки на имени этого модуля в окне
проекта, например, на Моdulе1;
2) в открывшемся контекстном меню выполнить команду Remove
(Удалить);
3) выбрать предлагаемую операцию экспорта модуля перед его уда-
лением Yes (Да) или кликнуть на кнопке No (Нет), если экспорти-
- 5 -

ровать модуль перед удалением не надо.
Теперь можно познакомиться и с самой оболочкой для разработки программ в среде VBA.
Основные элементы управления в редакторе VBA
Для просмотра модулей и работы с программным кодом вам необходимо использовать редактор Microsoft Visual Basic. Этот компонент предоставляет инструментальные средства, которые используются
для создания новых модулей, просмотра содержимого существующих
модулей, создания и редактирования исходного кода программ, разработки пользовательских диалоговых окон и выполнения других задач,
относящихся к написанию и обслуживанию программ на VВА.
Независимо от того, работаете ли вы в Word или в Excel, редактор VBA запускается одним и тем же способом. Используйте для этого один из следующих приемов:
• Выберите на ленте инструментов вкладку Разработчик, а на ней
инструмент Visual Basic.
• Нажмите сочетание клавиш Alt+F11.
Основное окно редактора VBA (рис.1) ничем не отличается от
окон MS Office.
Верхняя строка – заголовок окна с именем самой программы
Microsoft Visual Basic и через дефис именем документа, в котором
создается программный код. Здесь же имеются системные кнопки
управления окном, как во всех программах MS Office.
Ниже находится строка основного меню и панели инструментов,
дублирующие наиболее часто повторяющиеся команды из меню. Более подробно по ним будет описано ниже.
Все остальное пространство занимает рабочая область, которая
может разделяться на различные окна и панели. Их можно раскрывать или скрывать по мере надобности. Это панели:
• проекта (Project) (в левой верхней части экрана) – содержит пере-
чень объектов, входящие в документ создаваемой программы. На
рис.1 видно, что имеются два проекта: это собственно наш рабочий
документ (книга Excel), содержащий четыре объекта – листы книги
(Лист1, Лист2, Лист3) и сама книга (Эта книга), и второй проект –
надстройка Exp_fun.xla, что видно по ее расширению. По мере наполнения проекта там могут появляться новые объекты – программные модули, пользовательские формы и т.д. В заголовке панели
имеются три кнопки, которые выполняют следующие функции: по-
- 6 -

казывает программный код объекта, выводит на экран сам объект,
если это возможно (это возможно только для пользовательских
форм), и раскрывает или сворачивает дерево объектов;
Рис.1. Окно VBA
• свойств объектов (Properties) (в левой нижней части экрана) –
содержит перечень свойств выделенного объекта, в нашем случае
здесь представлены свойства выделенного в проекте объекта
Лист1. В заголовке панели имеется выпадающий список из включенных в данный объект его членов (members) – других объектов,
на которые можно быстро перейти при их выборе. Все свойства
объекта могут быть представлены в двух вариантах – по алфавиту
(Alphabetic) или по категориям (Categorized) согласно имеющимся на этой панели закладкам;
• коллекции объектов (Object browser) (справа вверху) – содержит
библиотеку всех объектов, использующихся в среде VBA и самого
- 7 -

приложения (в нашем случае это электронная таблица Excel). Здесь
можно найти любой объект, познакомиться с его свойствами и получить более подробную информацию по каждому объекту, его
свойствам, методам и событиям через систему помощи [F1]. Выбор
объектов может быть организован через выбор нужной библиотеки
(выпадающий список в верхней строке панели). Здесь можно выбрать нужную из них или все сразу All Libraries (все библиотеки),
как показано на рис.1. Затем выбираем нужный объект в двух нижних списках: в списке классов (Classes) (наборов из нескольких
объектов, объединенных в группу (Класс)) и списке членов класса
(Members of …) самих объектов или их свойств. Можно найти
нужный объект в поиске (вторая строка панели). Результаты поиска представляются в окне ниже. Выбрав нужный объект, можно
увидеть все его свойства в нижних окнах;
• исполнения (Immediate) (внизу слева) – окно, где можно немедлен-
но выполнить команду VBA или даже нескольких команд;
• локальных переменных (Locals) (внизу в центре) – окно, где авто-
матически выводится информация по всем описанным в программе
переменным во время выполнения кода;
• просмотра (Watches) (внизу справа) – окно, куда можно ввести вы-
ражение, которое будет вычислено, и результат будет выведен в нем;
• собственно окно кода программы, которое обычно находится вме-
сто коллекции объектов. Сюда вносится сам код программ (рис.2).
В верхней строке окна имеются два выпадающих списка. Левый из
них показывает область в коде модуля. В нем могут быть два значения: «General» – основная область и «Имя_объекта» (Work-
sheet, Workbook и UserForm) – область программ данного объекта. Правый список содержит обязательное значение «Declara-
tion» – описание переменных, и список общих и вспомогательных
процедур, расположенных в этой области кода. При выборе другого
объекта в левом списке, правый будет содержать все программы,
описывающие события для данного объекта. Данные списки позволяют быстро переходить к различным программам внутри модуля.
Все панели могут быть скрыты с помощью щелчка на кнопке с
крестиком соответствующей панели. Чтобы отобразить какую-либо
отсутствующую панель, следует открыть меню View (Вид), кликнуть
на соответствующей строке выпавшего меню. Для ряда панелей имеются комбинации горячих клавиш для их быстрого вызова.
- 8 -

Рис.2. Окно кода программы
Как уже говорилось выше, в окне кода набирается сам текст про-
граммы. Это можно делать вручную, но
лучше пользоваться стандартными заготовками – шаблонами. Познакомимся с первым
из них – созданием процедуры. Для этого
необходимо в меню Insert выбрать команду
Procedure. В открывшемся окне вставки
процедуры (рис.3) необходимо задать имя
процедуры, выбрать её тип (Sub (подпро-
грамма), Function (функция), Property
(свойство)) и область видимости (Public
Рис.3. Окно вставки
процедуры
(публичная), Private (приватная)). Завершить ввод нажатием кнопки Ok. В окне кода
появится заготовка программы. Первая и по-
следняя строки (операторы) программы стандартные:
Sub имя ()
End Sub
Вам теперь необходимо ввести собственно код программы между этими строками.
Помните, что в именах идентификаторов (программ, переменных) не должно быть пробелов (их можно заменять подчеркиванием
«_»). Они не должны начинаться с чисел и не могут совпадать с име-
- 9 -

нами стандартных функций и служебных слов языка. Регистр в имени
переменных не имеет значения. Если мы хотим, чтобы имя программы состояло из нескольких слов, то вместо пробела надо использовать знак соединения или каждое слово начинать с заглавной буквы.
Примеры имени программы:
моя_программа
МояПрограмма
МyРrоgram
Мy_Рrogram
Между первой и последней строками шаблона набираются остальные операторы программы. При этом можно пользоваться привычными командами редактирования (как в текстовом процессоре
Word), а также буфером обмена. Ввод строки оканчивается нажатием
клавиши Enter.
Если для наглядности оператор нужно разместить на нескольких
строках, то для переноса следует использовать комбинацию символов
пробела и соединения « _» (после ввода этих символов надо нажать
клавишу Enter). Если необходимо несколько операторов разместить
на одной строке, то между ними надо поставить двоеточие «:».
Помните, что после завершения ввода строки происходит ее
проверка и корректировка с вводом дополнительных пробелов.
Апостроф (запятая в верхней части строки) «’» означает, что
следующая за ним информация (до конца строки) является комментарием, т.е. набором символов, который никак не влияет на выполнение
программы. Если Вы готовите большую программу, то рекомендуется её комментировать, чтобы не забыть основной алгоритм и назначение используемых переменных.
Более подробно остановимся на основных командах меню:
• File (Alt+F) – содержит команды работы с файлами, печати и за-
крытия пакета. Наибольший интерес вызывают команды Import
(Импорт) и Export (Экспорт), которые позволяют сохранить программный код в текстовом файле, а затем загрузить его в другой
проект. Это позволяет использовать наборы заранее созданных
программных заготовок и форм в других проектах. Команда Re-
move (Извлечь) позволяет
удалить выделенный объект из проекта. При ее выполнении задается вопрос
об экспорте данных
Рис.4. Запрос на экспорт объекта
(рис.4). Если объект больше не нужен, его можно
- 10 -
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
