Основы программирования на VBA для Microsoft Excel
Покупка
Основная коллекция
Тематика:
Программирование на Basic, VBA
Издательство:
Новосибирский государственный технический университет
Автор:
Бычков Михаил Иванович
Год издания: 2010
Кол-во страниц: 99
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7782-1460-6
Артикул: 632429.01.99
Учебное пособие предназначено для самостоятельного изучения основ программирования в среде редактора Visual Basic for Applications (VBA) для Microsoft Excel: знакомит с основами объектно-ориентированного программирования, объектами Excel, средой и базовыми концепциями программирования, а также с основами разработки приложений в Excel, их отладкой и тестированием.
Изучение материала, представленного в пособии, позволит не только начать создавать собственные приложения, но и более осмысленно работать с уже готовыми Windows-совместимыми программ-ными продуктами.
Пособие рекомендуется студентам заочной формы обучения экономических специальностей, знакомых с табличным процессором Excel и операционной системой Windows, но будет полезно и студентам других специальностей, а также тем, кто проявляет интерес к программированию и впервые сталкивается с необходимостью написания программ.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- ВО - Магистратура
- 09.04.01: Информатика и вычислительная техника
- 09.04.02: Информационные системы и технологии
- 09.04.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство образования и науки Российской Федерации НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ __________________________________________________________________________ М.И. Бычков Основы программирования на VBA для Microsoft Excel Утверждено Редакционно-издательским советом университета в качестве учебного пособия НОВОСИБИРСК 2010
УДК 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
ВВЕДЕНИЕ Visual Basic for Application (VBA) – это единый для Word, Exel и других приложений MS Office объектно-ориентированный язык программирования высокого уровня, построенный на основе языка Visual Basic. В отличие от Visual Basic язык VBA можно использовать только из приложений MS Office. С помощью VBA создаются программы, существенно облегчаю щие обработку, анализ и представление данных, взятых из различных источников информации – электронных таблиц, файлов, баз данных. Программы на VBA позволяют автоматизировать создание доку ментов и обработку информации в них. В сочетании с другими возможностями офисных приложений это дает возможность частичной или полной автоматизации работ на компьютере. Программы на языке VBA создаются в специальной интегрирован ной среде программирования – редакторе VBA. В этой среде есть все необходимое для написания программ. В ней можно визуально, путем переноса готовых объектов на заранее установленную форму, создавать пользовательский интерфейс программы, создавать и редактировать исходные тексты программ, запускать их на исполнение. Простые приложения в VBA можно создавать, практически не прибегая к написанию программного кода, а лишь используя управление существующими объектами. При решении более сложных задач процесс написания программ также значительно облегчен за счет вспомогательных средств языка. Программирование в редакторе VBA предполагает использование управляющих элементов (объектов, из которых строится интерфейс программы). Знание этих объектов и их свойств помогает быстрее осваивать работу с уже готовыми Windows-совместимыми приложениями. В среде VBA создаются программы, управляемые событиями, т. е. действиями пользователя или операционной системы. Примеры таких действий – щелчок мышью; событие, связанное с действием, выпол
няемым по истечении заданного интервала времени; событие, связанное действием по перерисовке окна при его активизации, и т. д. Язык VBA – мощный современный язык программирования, по зволяющий решать любые современные задачи разработки приложений. Вместе с тем это достаточно простой язык, хорошо подходящий для обучения программированию. В нем можно создавать простые приложения за короткое время. Он хорошо подходит для разработки бизнес-приложений. Области применения VBA Приложения MS Office, такие как Excel или Word, позволяют соз давать документы или системы документов. При этом, как правило, не ставится задача создания программного проекта (приложения). Вместе с тем программный проект является неотъемлемой частью документа и хранится вместе с ним. Можно сказать, что документ – это в некотором роде контейнер, в котором хранится программный проект. По умолчанию пользователь имеет дело со стандартным докумен том, содержащим «пустой» программный проект. С такими документами, как правило, работают пользователи, которые либо не умеют создавать программные проекты, либо даже не знают о возможности их включения в документ. Может быть и третья ситуация, при которой пользователя полностью устраивают возможности стандартного документа. В большинстве же случаев для эффективной работы с информаци ей, содержащейся в документах, требуются средства автоматизации в виде программных проектов. Для создания программных проектов используется встроенный в MS Office язык программирования VBA. Язык VBA кроме собственных возможностей обеспечивает доступ к ресурсам приложений MS Office, к их библиотекам функций и объектам. Все это существенно расширяет возможности автоматизации приложений. Чаще всего программирование на VBA применяется именно в рам ках приложения MS Excel. В большинстве случаев это связано просто с необходимостью автоматизировать выполнение расчетов или других, часто используемых, операций.
К операциям, которые целесообразно автоматизировать средствами VBA, можно отнести операции, связанные с обменом информацией между электронными таблицами, файлами и базами данных. Часто программные проекты разрабатывают и применяют для ав томатизации расчетов, анализа и представления данных, для прогнозирования результатов. Оперативную обработку информации удобно выполнять в Excel. При больших объемах обрабатываемых данных их удобнее хранить не в электронных таблицах, а в базах данных. Проблема взаимодействия электронных таблиц и файлов баз данных в этом случае может быть успешно решена с помощью программных проектов, разработанных с использованием VBA. С применением средств автоматизации удобно выполнять сбор и конвертацию данных, полученных в различных системах; приведение их к единому виду, удобному для восприятия и обработки. С помощью программных проектов можно быстро создавать и ви доизменять отчетные документы. Язык VBA имеет доступ к средствам электронных таблиц и объек там приложений MS Office и позволяет дополнить Excel новыми средствами. Все это дает широкие возможности для автоматизации приложений. Самостоятельное использование средств автоматизации приобре тает актуальность в тех случаях, когда нет возможности использовать готовые программные продукты или труд профессиональных программистов для решения поставленных задач. В этом существенно может помочь знание и использование языка VBA. Можно сказать, что автоматизация средствами VBA необходима там, где много рутинной, часто повторяющейся работы, где требуется быстрое получение результатов, где особое внимание уделяется точности и достоверности результатов или требуется быстрое получение информации для принятия решений. Особо следует подчеркнуть, что средства VBA позволяют исполь зовать ресурсы различных приложений MS Office. Основные этапы развития программирования Растущая сложность задач, решаемых с помощью ЭВМ, всегда требовала поиска новых подходов к разработке программ. С ростом объемов программ актуальной становилась их структуризация.
В первых программах, не имеющих четко выраженной структуры, т. е. не разбитых на отдельные автономные части, трудно было ориентироваться. В таких программах часто приходилось дублировать (повторно использовать) запись отдельных ее фрагментов. Поиск ошибок в таких программах был также затруднен. Со временем для упрощения разработки программ возрастала не обходимость разбиения больших задач на подзадачи. Появилось новое понятие – процедура, которая представляет собой законченную последовательность действий или операций, направленных на решение отдельной подзадачи. Использование процедур позволило разбивать большие программы на подпрограммы, упрощая, таким образом, их написание. Такой подход к разработке программ получил название процедурного подхода. Появилась возможность создания библиотек подпрограмм (проце дур), что позволило повторно использовать эти компоненты в рамках одной или нескольких программ. Со временем процедуры стали объединять в более крупные едини цы – модули, предназначенные для решения одной или нескольких задач. На основе процедурной декомпозиции решаемой задачи и объеди нения процедур в модули возникло новое направление в разработке программ – структурное программирование. Дальнейший рост сложности программ показал, что традиционные методы процедурного программирования не справляются со своими задачами, к числу которых относится не только упрощение процесса программирования, но и повышение надежности программ. Для дальнейшего решения возникших проблем во второй половине 80-х годов ХХ века была разработана новая методология программирования – объектно-ориентированное программирование (ООП). Основные сведения об объектно-ориентированном программировании Объектно-ориентированный подход к разработке программ Объектно-ориентированный подход к разработке программ осно ван на представлении программы в виде набора объектов, каждый из которых объединяет данные и процедуры их обработки, в отличие от процедурного подхода, при котором эти компоненты разбросаны по всей программе, что зачастую и приводит к ошибкам.
К основным достоинствам объектно-ориентированного подхода можно отнести уменьшение сложности программирования и повышение надежности программ, возможность повторного использования и модификации отдельных компонентов программ, не затрагивая другие компоненты. Применение объектно-ориентированного подхода позволяет разра батывать хорошо структурированные, надежные в эксплуатации и легко модифицируемые программы. В настоящее время ООП – одно из интенсивно использующихся направлений программирования. Классы и объекты Основными понятиями ООП являются понятие класс и понятие объект. Понятие «класс» относится к совокупности объектов, обладающих общими признаками. В ООП класс является шаблоном (прообразом), используемым для создания объектов, и представляет собой описание их структуры и поведения. Класс имеет статус типа данных, и на его основе создаются конкретные объекты – экземпляры класса. VBA позволяет программисту создавать собственные классы. Син таксически класс представляет отдельный модуль специального вида – модуль класса. Поэтому начинать создание класса в редакторе Visual Basic нужно с выбора в меню Insert пункта Class Module. Класс включает описание того, какие данные будут входить в состав объекта, созданного на основе этого класса. Класс включает и описание процедур, которые будут использоваться для обработки данных, входящих в состав объекта. Эти процедуры носят название методов. Основной способ использования класса – создание объектов данно го класса с последующим обращением к компонентам этих объектов – переменным и методам. До создания объекта переменные и методы недостижимы, они просто не существуют. Таким образом, объекты – это конкретные программные компонен ты, созданные на основе их описаний в классе. До появления ООП данные и процедуры их обработки рассматри вались отдельно. В этом случае данные были пассивными элементами программы. Поступление на вход процедуры данных, тип которых отличался от типа данных обрабатываемого процедурой, вызывало ошибку. С появлением ООП данные и процедуры их обработки были объе динены в единое целое – объект. Объединение данных и процедур их обработки в объекте называется инкапсуляцией. Доступ к данным, со
держащимся в объектах, обеспечивается только через процедуры (методы), описанные в классе, на основе которого создается объект. Инкапсуляция позволяет защитить данные от их изменения со сто роны других частей программы и тем самым повысить надежность программ. Объект является целостной автономной единицей, которой можно управлять. Объект может рассматриваться как активный элемент программы, которому передаются сообщения. В соответствии с переданными сообщениями объект выполняет действия, предусмотренные процедурами, входящими в состав класса, которому принадлежит объект. Можно сказать, что объекты представляют собой автономные ак тивные части программы, общение между которыми обеспечивается путем передачи сообщений. Свойства и методы класса Класс задает свойства и поведение объектов, построенных на его основе. Каждый объект принадлежит некоторому классу. Отношение между объектом и его классом примерно такое же, как между переменной и ее типом. Объекты класса характеризуются атрибутами (свойствами) и неко торыми функциональными возможностями, которые в объектноориентированном программировании называют методами. Содержащиеся в объекте данные находятся в переменных, которые называют переменными экземпляра, или свойствами объекта. Совокупность значений свойств определяет состояние объекта. Методы – это процедуры, описываемые в классе, на основе которого создаются объекты. Методы определяют действия, обязательные для выполнения объектом, если ему передано определенное сообщение. Манипулировать объектами можно двумя способами. Первый спо соб состоит в изменении свойств объекта. Второй способ состоит в том, чтобы заставить объект выполнить определенную задачу путем исполнения метода (процедуры), ассоциированного с этим объектом. Оба эти способа часто связываются с наступлением некоторого события. События Наряду со свойствами и методами с классом связывается еще одно понятие – события. Каждый класс имеет определенный набор событий, которые могут возникать при работе с объектами класса – чаще всего
при некоторых действиях пользователя, а иногда – как результат действия системы. При возникновении события, связанного с тем или иным объектом, система посылает сообщение объекту, которое может быть обработано методом-обработчиком события, специально созданным при конструировании объекта. События обеспечивают большую гибкость при работе с объектами. Методы класса выполняются одинаково для всех объектов класса, а на события каждый объект реагирует индивидуально, поскольку имеет собственный обработчик события. Событие – это действие, осуществляемое пользователем (нажатие клавиши, щелчок кнопки мыши), или ситуация, связанная с объектом. Реакция объекта на событие может быть определена в специальной процедуре обработки события, которая связана с конкретным объектом. Эту процедуру пишет сам программист в редакторе обработки события. Программирование такого рода называется событийным программированием. Свойства, методы и события – это основные элементы ООП. Свой ства позволяют описать объект. Они определяют внешнее представление, поведение и другие черты объекта. Методы – это процедуры, которые выполняют ту или иную обработку информации, связанной с объектом. Большинство методов являются стандартными и выполняются по принципу умолчания. Однако можно создавать и собственные методы, которые затем добавляются объекту. Каждый объект имеет достаточно большой набор стандартных свойств и методов, т. е. свойств и методов, используемых по умолчанию. При ООП приложение (программа) представляется разработчику как совокупность объектов, а сам объект – это комбинация программного кода и данных. Отношения между объектами Кроме возможности изменения характеристик отдельных объектов между объектами можно устанавливать (определять) отношения связывания. Так, связь может быть установлена между таблицей, являющейся объектом базы данных, и формой, являющейся объектом приложения (программы) и служащей для отображения данных таблицы. В ООП существует возможность копирования объектов в другие объекты, без потерь показателей их представления или поведения. На
пример, можно копировать объекты приложения в такие объекты, как формы, отчеты. В ООП удается выстраивать иерархическую структуру включения одних объектов в другие. Это возможно потому, что некоторые классы объектов содержат другие объекты. Например, форма может содержать такие объекты, как элементы управления, под которыми понимаются элементы, служащие для управления работой приложения. Иерархическая взаимосвязь объектов, с которыми работает кон кретное приложение, входящее в состав Microsoft Office, называется объектной моделью данного приложения. Для каждого приложения существует своя объектная модель со своим набором объектов. Объектные модели всех приложений MS Office в качестве главного объекта имеют объект Application «Приложение». Главная иерархия объектов Excel выглядит следующим образом: Приложение (Application) – Книга (Workbook) – Лист (Worksheet) – Диапазон (Range). Таким образом, основными объектами Microsoft Excel являются: приложение, книга, лист, диапазон. Главная иерархия объектов Word немного беднее и выглядит сле дующим образом: Приложение (Application) – Документ (Docu-ment) – Диапазон (Range). 1. ОБЪЕКТЫ И ОБЪЕКТНАЯ МОДЕЛЬ EXCEL Объектами VBA являются те элементы, на которые можно воздей ствовать, изменяя их состояние. Большинство объектов имеет графическое изображение. Однако при этом следует помнить, что существуют и неотображаемые объекты, на которые можно только воздействовать, но отобразить их нельзя. Примером объекта служит диапазон ячеек рабочего листа, его можно увидеть в окне приложения и можно изменить его состояние, введя в ячейки этого диапазона данные, сменив цвет ячеек или шрифт. Объект – это и окно рабочей книги, поскольку на него можно воз действовать с помощью кнопок Свернуть окно и Развернуть окно. Сами же кнопки не являются объектами, ими можно пользоваться, но изменять их нельзя. Объектами выступают все приложения MS Office, например при ложения Word и Excel – объекты Word.Application и Excel.Application.