1. VBA как система объектно -ориентированного программирования

1.1 Основные понятия объектно – ориентированного программирования

В основе объектно-ориентированного программирования управляемого событиями лежат понятия класс, инкапсуляция, объект, наследование, полиморфизм, событие и сообщение [].В качестве объектов могут рассматриваться конкретные предметы, а также абстрактные или реальные сущности. Например, объектами могут быть покупатель, фирма, производящая товары, банк, заказ на поставку и др.В частном случае, в VBA объектом являются элементы пользовательского интерфейса, которые создаются на Форме пользователя (UserForm) или на рабочем листе, а также рабочая книга и ее элементы.Объект является комбинацией состояния и поведения. Состояние описывается переменными экземпляра, а его возможное поведение характеризуется присущими ему методами.Каждый объект является представителем некоторого класса однотипных объектов, т.е. объект является экземпляром класса. Класс определяет общие для всех его объектов методы и свойства. Методы - это программные процедуры, реализующие некоторый алгоритм, который определяет взаимодействие объектов класса с внешней средой. Свойства представляют собой характеристики (атрибуты), присущие объектам (например, размер шрифта, название и др.). Инкапсуляция - это скрытие информации. При объектно-ориентированном программировании возможен доступ к объекту только через его методы и свойства. Внутренняя структура объекта скрыта от пользователя, т.е. объекты - это самостоятельные сущности, отделенные от внешнего мира. Инкапсуляция позволяет изменять реализацию объектов любого класса без опасений, что это вызовет нежелательные побочные эффекты в программной системе. Это мощное средство обеспечивает многократное использование одного и того же программного кода, позволяя собирать программу из готовых модулей, как здание из отдельных кирпичиков, но различной архитектуры и функционального назначения.Наследование - это возможность выделить свойства, методы и события одного объекта и приписать их другому объекту, иногда с их модификацией. С точки зрения программиста, новый класс должен содержать только коды и данные для новых или изменяющихся методов. Полиморфизм - это способность объектов выбирать операцию на основе данных, принимаемых в сообщении. Каждый объект может реагировать по-своему на одно и тоже сообщение. Например, команда Print будет по-разному воспринята черно-белым или цветным принтером.В заключение следует сказать, что ООП это новая технология программирования, позволившая перейти к индустриальным методам разработки программного обеспечения.

1.2 Общие сведения о VBA

Существует целый ряд систем программирования, позволяющих в той или иной степени реализовать концепцию объектно – ориентированного подхода при разработке программных средств. Наиболее полные возможности имеют такие системы, как Си ++, Java, Visual Basic. В отличие от Visual Basic, VBA не является языком объектно–ориентированного программирования (ООП) в строгом смысле этого слова., тем не менее, в нем очень широко используется элементы объектно – ориентированного программирования и связанные с ним понятия. VBA положен в основу системы программирования Visual Basic. Корпорация Microsoft использует возможности VBA при разработке приложений Windows, осуществляя параллельное с разработкой тестирование приложений с помощью макроязыка.Система программирования Visual Basic for Application (Visual Basic для приложений - VBA) занимает важное место в стратегии программных продуктов фирмы Microsoft. Другим подмножеством VBA является язык описания сценариев VBScript. Его основным назначением является создание интерактивных Web –страниц.Таким образом, изучив программирование в среде VBA, вы без больших усилий можете освоить программирование на Visual Basic или VBScript.Так что же такое VBA?Visual Basic for Application - это подмножество Visual Basic (VB), которое включает почти все его средства создания приложений, структуры данных и управляющие структуры, возможность создания пользовательских типов данных. VBA, как и VB, является языком визуального и событийно управляемого программирования — в нем есть возможность создания форм со стандартным набором элементов управления и написания процедур, обрабатывающих события, которые возникают при тех или иных действиях системы и конечного пользователя. Кроме того, он позволяет применять элементы ActiveX. В общем, это полноценный язык программирования, хотя и не обладающий всеми возможностями последних версий Visual Basic. С другой стороны, VBA позволяет работать с огромным набором объектов - по существу, в нем определены все объекты приложений MS Office. Отметим одну, может быть главную, особенность программирования на VBA. Программист, создавая проект на каком-либо языке программирования, работает в соответствующей среде, где язык — главное средство, а создание кода — главная цель действия программиста. А при работе на VBA целью является создание документа в широком смысле (документа Word, рабочей книги Excel, презентации и т. д.). Проект на VBA-результат побочной деятельности по созданию документа. Более того, проект на VBA, независимо от какого-либо документа, создать нельзя, даже если никакие свойства этого документа не используются.Приступая к очередному сеансу работы, программист открывает одно из приложений MS Office, и в этот момент в языке VBA автоматически становится доступным объект Application, определяющий это приложение, а также все встроенные в него объекты. Можно определить и создать, объект Application для любого приложения MS Office, получив тем самым доступ ко всем его объектам.Итак, VBA отличается от Visual Basic и прочих языков программирования тем, что он предоставляет возможность непосредственной работы с объектами MS Office. Это позволяет эффективно использовать его для автоматизации деятельности, связанной с обработкой различных типов документов. Обычные средства VBA, унаследованные от Visual Basic, - важная, но не определяющая часть языка.VBA позволяет существенно расширить вычислительные возможности Excel. С помощью VBA можно легко и быстро создавать различные приложения, даже не являясь специалистом в области программирования. VBA имеет графическую инструментальную среду, позволяющую создавать экранные формы и управляющие элементы. С его помощью можно создавать свои собственные функции для Excel, вызываемые мастером функций, разрабатывать макросы, создавать собственные меню и многое другое. VBA придает документам элегантность и позволяет с легкостью решать многие задачи, о возможности выполнения которых средствами Excel можно только мечтать. Как и Visual Basic, VBA реализует концепцию визуального программирования, управляемого событиями.

1.3 Объекты, методы, свойства, события

Объектам VBA присуща функциональность - они действуют определенным образом и могут откликаться на определенные ситуации. При этом если свойства объекта определяют его внешний вид и состояние, методы объекта определяют те задачи, которые может выполнить данный объект. Методы, по сути дела, представляют собой сегмент программного кода внедренный в объект. Существует определенный формат программного кода, задающего установку свойства и использование метода:

Объект. Свойство = ЗначениеСвойства

Объект. Метод [Параметр1 […]]

Здесь объект - имя настраиваемого объекта; Свойство - это характеристика, которую нужно изменить; Метод - это команда, которая используется для изменения объекта; Значение - это новая установка свойства; Параметр - это аргумент, используемый методом. Следующий пример показывает, как можно изменить текст в строке заголовка окна приложения посредством установки нового значения свойству Caption объекта Application:Application.Caption = “Пример установки свойства”Как и свойства, различные типы объектов могут иметь различные методы. Следующий пример показывает использование метода CountA (подсчет количества не пустых строк) объекта Application для определения номера последней не пустой строки активного рабочего листа:

НомерСтроки= Application.CountA(ActiveSheet.Columns(1))

Объекты могут реагировать на события - действия пользователя или другие внешние действия, например, щелчок по кнопке, изменение текста, нажатие клавиши и др. Событие представляет собой действие, распознаваемое объектом, для которого можно запрограммировать отклик. Иногда свойства и методы объекта оказываются связанными в том смысле, что выполнение некоторого метода приводит к изменению свойств объекта. В свою очередь, изменение некоторых свойств может вызвать наступление событий. Программа может обрабатывать два основных типа событий: инициируемые пользователем и генерируемые системой. События, инициируемые пользователем, возникают в результате его действий: нажатие клавиши, щелчки кнопками мыши. Но есть события, являющиеся следствием действий пользователя. Таким образом, любое из действий пользователя может вызвать целый набор событий, и порядок их вызова может быть важным. Основными действиями пользователя, генерирующими вызов событий в программе, являются следующие:· запуск программы;· нажатие клавиши;· щелчок кнопкой мыши;· перемещение мыши;· выход из программы.Суть программирования на VBA заключается в двух понятиях: событие и отклик на него. Если пользователь производит какое-то воздействие на систему, допустим, щелкает на кнопке, тогда в качестве отклика выполняется код созданной пользователем процедуры. Этот специальный вид процедур, генерирующих отклик на события, называется процедурами обработки событий. Если такой отклик не создан (не написана соответствующая процедура), то система никак не будет реагировать на это событие. Таким образом, задачей пользователя является разработка программного кода процедур для обработки различных событий, которые являются важными с точки зрения функционирования программы.

Вопросы для самоконтроля

1. Назовите и проясните основные понятия объектно-ориентированного программирования.

2. В чем заключается преимущество технологии ООП?

3. Что такое программирование, управляемое событиями? В чем его особенности?

4. Каково назначение VBA?

5. Что такое событие?

6. Что такое метод объекта?

7. Какие конструкции применяются для установки свойств объектов и доступа к их методам?

Следующая страничка   В cодержание темы
Hosted by uCoz