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

Приемы программирования в среде Visual Basic for Application. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
«Казанский государственный технологический университет»
Ф.И.
Воробьева, Е.С. Воробьев
ПРИЕМЫ ПРОГРАММИРОВАНИЯ
В СРЕДЕ VISUAL BASIC FOR APPLICATION
Учебное
пособие
Казань
КГТУ
2010
УДК
658.26:66.094
Воробьева,
Ф.И.
Приемы программирования в среде VISUAL BASIC for APPLICATION: учебное пособие / Ф.И. Воробьева, Е.С. Воробьев. – Ка- зань: Изд-во Казан. гос. технол. ун-та; 2010. − 104 с.
ISBN 978-5-7882-0825-1
Рассмотрены основные элементы среды разработки программ, а также базовые конструкции алгоритмического языка Visual Basiс for Ap­plication. Показаны примеры разработки пользовательских функций Ехс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 -
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]