Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
,
ПРИЕМЫ ПРОГРАММИРОВАНИЯ
В СРЕДЕ VISUAL BASIC FOR APPLICATION
MS OFFICE
Учебное пособие
2010
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
«Казанский государственный технологический университет»
,
ПРИЕМЫ ПРОГРАММИРОВАНИЯ
В СРЕДЕ VISUAL BASIC FOR APPLICATION
MS OFFICE
Учебное пособие
Казань
КГТУ
2010
УДК 658.26:66.094
Воробьева, Ф. И.
Приемы программирования в среде VISUAL BASIC for APPLICATION: учебное пособие / , . – Казань: Изд-во Казан. гос. технол. ун-та; 2010. − 104 с.
ISBN 0825-1
Рассмотрены основные элементы среды разработки программ, а также базовые конструкции алгоритмического языка Visual Basiс for Application. Показаны примеры разработки пользовательских функций Ехсel Продемонстрированы приемы работы с отладчиком программ. Даны общие принципы и примеры создания пользовательских программ (макросов) и форм для создания своих приложений в среде Excel.
Пособие может быть использовано при изучении дисциплин «Информатика», «Применение ЭВМ в технологии» и «Применение ЭВМ в расчетах», а также при курсовом и дипломном проектировании.
Предназначено для студентов очной и заочной форм обучения специальностей 240802.65 «Основные процессы химических производств и химическая кибернетика» и 240801 «Машины и аппараты химических производств», обучающихся по направлению 240800 «Энерго - и ресурсосберегающие процессы в химической технологии, нефтехимии и биотехнологии».
Подготовлено на кафедре общей химической технологии.
Печатается по решению редакционно-издательского совета
Казанского государственного университета.
Рецензенты: профессор КГТУ им. Туполева
старший научный сотрудник
Казанского научного центра РАН
ISB N 0825-1 ã , , 2010
ã Казанский государственный
технологический университет, 2010
Введение
Visual Basic for Application (VBA) это среда программирования в пакете программ Microsoft Office. Средствами VBA можно создавать функции пользователя, которые используются на листах электронных таблиц, макросы (макро команды) для создания новых команд из комбинаций стандартных команд приложений, если их надо часто повторять в том же порядке, программные надстройки для специальных программных решений внутри приложений Microsoft Office.
Основные понятия объектно-ориентированного программирования
Объектно-ориентированное программирование позволяет существенно упростить процесс создания программ. Основами данного способа программирования являются объекты. Объекты – представляют собой законченные элементы, которые мы используем во время программирования. Например, мы строим различные геометрические фигуры, каждая из них может быть объектом. Возьмем прямоугольник, чтобы его построить нам надо знать его ширину и длину, которые являются его (прямоугольника) свойствами (Properties). Если мы не знаем объекта прямоугольник, то нам надо будет нарисовать четыре линии соответствующих длин и правильно их сориентировать друг относительно друга. Когда мы имеем объект прямоугольник, то все операции его построения уже заложены в самом объекте. Например, нам надо расширить наш объект новым свойством (цветом). Создаем для него новое свойство «Цвет заливки» и пишем подпрограмму для его реализации.
Показанный пример объекта весьма прост. В реальных условиях каждый объект обладает:
· свойствами (Properties), которые задаются конкретными значениями (длина и ширина). Их можно считать или изменять, задав нужное значение;
· методами (Methods), которые реализуют какие-либо действия с объектом, например, изменить его размеры, цвет и т. п.;
· событиями (Events), в которых обычно и реализуются программы пользователя для управления данным объектом, например, щелчок мышки или ее движение через объект и т. п.
Каждый объект может включать в себя другие объекты, и сам входить частью в объекты более высокого уровня. Например, наш объект прямоугольник, может включать в себя четыре объекта линий, а линия может состоять из двух точек. Также можно двигаться и в другую сторону, включая прямоугольник в более сложные объекты.
Вся структура пакета программ Microsoft Office построена на этой же идеологии. Каждая программа является объектом с именем Application (Приложение). В свойствах этого объекта мы можем узнать имя самой программы (Word, Excel и т. п.), параметры окна, открытые файлы документов и т. д. С использованием методов мы можем открывать и закрывать документы и саму программу, изменять размеры рабочего окна программы и т. п. Если мы хотим создать свою процедуру запуска программы, то мы можем записать в событие объекта свой программный код, например, при запуске Word, обязательно открывать нужный документ. В свою очередь каждый документ тоже является объектом, содержащим более мелкие объекты, так, например, электронная таблица содержит листы, а лист имеет ячейки.
Хорошее понимание объектно-ориентированного программирования и умение использовать стандартные объекты существенно упростит создание ваших программ.
Прежде чем перейти к самим приемам работы в среде программирования VBA, познакомимся с размещением программ пользователей в документах.
Модули
Все программы Visual Basic for Application сохраняются в рабочих файлах Microsoft Office, это могут быть документы Word, электронные таблицы Excel и файлы других программ пакета. Обычно программы VBA находятся в специальной части файлов, называемой Modules (модули). Модуль VВА содержит исходный код программы – текстовое представление инструкций по выполнению вычислений. Каждый файл может иметь до нескольких модулей. Модули объединены в общий объект Project (проект). Существует несколько типов модулей:
· модули объектов документа, которые содержат нужные программные реализации для событий этих объектов. Например, если мы создали экранную форму, которую надо запускать одновременно с открытием документа, то процедуру ее показа надо записать в событие книги ‑ Open;
· экранные формы, которые позволяют создавать свои рабочие окна для реализации ваших собственных задач. Формально данные модули состоят из двух – собственно экранной формы и программного кода для реализации необходимых событий ее объектов;
· модули программ – основной элемент 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 (Нет), если экспортировать модуль перед удалением не надо.
Теперь можно познакомиться и с самой оболочкой для разработки программ в среде 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, что видно по ее расширению. По мере наполнения проекта там могут появляться новые объекты – программные модули, пользовательские формы и т. д. В заголовке панели имеются три кнопки, которые выполняют следующие функции: показывает программный код объекта, выводит на экран сам объект, если это возможно (это возможно только для пользовательских форм), и раскрывает или сворачивает дерево объектов;

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

Рис.2. Окно кода программы
Как уже говорилось выше, в окне кода набирается сам текст программы. Это можно делать вручную, но лучше пользоваться стандартными заготовками – шаблонами. Познакомимся с первым из них – созданием процедуры. Для этого необходимо в меню Insert выбрать команду Procedure. В открывшемся окне вставки процедуры (рис.3) необходимо задать имя процедуры, выбрать её тип (Sub (подпрограмма), Function (функция), Property (свойство)) и область видимости (Public (публичная), Private (приватная)). Завершить ввод нажатием кнопки Ok. В окне кода появится заготовка программы. Первая и последняя строки (операторы) программы стандартные:
Sub имя ()
End Sub
Вам теперь необходимо ввести собственно код программы между этими строками.
Помните, что в именах идентификаторов (программ, переменных) не должно быть пробелов (их можно заменять подчеркиванием «_»). Они не должны начинаться с чисел и не могут совпадать с именами стандартных функций и служебных слов языка. Регистр в имени переменных не имеет значения. Если мы хотим, чтобы имя программы состояло из нескольких слов, то вместо пробела надо использовать знак соединения или каждое слово начинать с заглавной буквы. Примеры имени программы:
моя_программа
МояПрограмма
МyРrоgram
Мy_Рrogram
Между первой и последней строками шаблона набираются остальные операторы программы. При этом можно пользоваться привычными командами редактирования (как в текстовом процессоре Word), а также буфером обмена. Ввод строки оканчивается нажатием клавиши Enter.
Если для наглядности оператор нужно разместить на нескольких строках, то для переноса следует использовать комбинацию символов пробела и соединения « _» (после ввода этих символов надо нажать клавишу Enter). Если необходимо несколько операторов разместить на одной строке, то между ними надо поставить двоеточие «:».
Помните, что после завершения ввода строки происходит ее проверка и корректировка с вводом дополнительных пробелов.
Апостроф (запятая в верхней части строки) «’» означает, что следующая за ним информация (до конца строки) является комментарием, т. е. набором символов, который никак не влияет на выполнение программы. Если Вы готовите большую программу, то рекомендуется её комментировать, чтобы не забыть основной алгоритм и назначение используемых переменных.
Более подробно остановимся на основных командах меню:
·
File (Alt+F) – содержит команды работы с файлами, печати и закрытия пакета. Наибольший интерес вызывают команды Import (Импорт) и Export (Экспорт), которые позволяют сохранить программный код в текстовом файле, а затем загрузить его в другой проект. Это позволяет использовать наборы заранее созданных программных заготовок и форм в других проектах. Команда Remove (Извлечь) позволяет удалить выделенный объект из проекта. При ее выполнении задается вопрос об экспорте данных (рис.4). Если объект больше не нужен, его можно просто удалить, если он не нужен только в данном проекте, но может пригодиться в другом, его можно перед удалением экспортировать в файл, ответив на запрос «Да».
· Edit (Alt+E) – содержит несколько групп команд, связанных с редактированием текста программы:
Краткая справка по командам и подменю меню Edit редактора VBA приведена в таблице. Там же можно видеть пиктограммы кнопок, которые присутствуют или могут присутствовать на панелях инструментов для ускоренного доступа к этим командам, равно как и сочетания клавиш, нажав на которые, можно выполнить данные команды.
Команда | Кноп-ка | Сочетание | Описание |
Undo … |
| Ctrl+Z | Отмена выполненной команды. Иногда можно отменить ряд команд |
Redo … |
| Нет | Отмена последней команды Undo … |
Сut (Вырезать) |
| Ctrl+X | Вырезать выделенный фрагмент кода или объект и поместить в буфер обмена |
Сору |
| Ctrl+C | Копирование выделенного фрагмента кода или объекта в буфер обмена |
Paste |
| Ctrl+V | Вставка содержимого буфера обмена, например, в модуль (код) или форму (элемент формы) |
Clear |
| Del | Удаление фрагмента кода или элемента формы. При работе с кодом команда имеет название Clear (Очистить), а при работе с элементами форм отображается название Delete (Удалить) |
Select All (Выделить все) |
| Ctrl+A | Выделение всего программного кода в модуле или всех элементов на форме |
Find (Найти) |
| Ctrl+F | Команда поиска текстового фрагмента в модуле |
Find Next | F3 | Поиск и выделение следующего фрагмента текста или кода после первого найденного | |
Replace | Ctrl+H | Поиск текста и замена его на другой. Оба текста (искомый и текст замены) указываются в диалоговом окне при выполнении команды | |
Indent |
| Таb | Смещение строк выделенной части кода вправо |
Outdent |
| Shift+Tab | Смещение строк выделенной части кода влево |
List Properties| Methods (Список свойств /методов ) |
| Ctrl+J | Вывод списка свойств или методов для введенного объекта после ввода точки (.) в конце имени объекта |
List Constants (Список констант) |
| Ctrl+Shift+J | Выводится список допустимых констант для указанного объекта после ввода знака равенства (=) |
Quick Info |
| Ctrl+I | Выводит список параметров для функций, процедур и других модулей программы при наведении курсора на имя этого модуля |
Parameter Info (Параметры) |
| Ctrl+Shift+I | Контролирует ввод необходимых входных параметров при заполнении имен фактических параметров после имени процедуры |
Complete Word (Завершить слово) |
| Ctrl | Автоматическое завершение ввода ключевых слов. Выполняется только в том случае, если введено достаточное количество символов, позволяющих VBA идентифицировать это слово |
Bookmarks |
| Нет | Подменю работы с закладками. Содержит команды Установить / Снять закладку (Toggle Bookmark), перейить к следующей закладке (Next Bookmark), и к предыдущей (Previous Bookmark) и удалить все закладки (команда Clear All Bookmarks). |
Можно заметить, что первые две команды рассматриваемого меню (Undo и Redo, соответственно) отображены несколько необычно ‑ команды выделены серым цветом (это означает, что они недоступны), к тому же перед этими командами появилось слово Can't, что в переводе означает невозможно. Объясняется все просто ‑ поскольку в документе никакие операции с данными не производились, то и отменять нечего. В процессе работы, когда команды станут доступны, в соответствующей командной строке будет отображена не только сама команда, но и описание того действия, которое можно отменить или повторить.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 |


