Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в VBA.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
2.27 Mб
Скачать

106

Федеральное агентство по образованию

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЭКОНОМИКИ И ФИНАНСОВ»

КАФЕДРА ИНФОРМАТИКИ

А.М. ВЛАСОВЕЦ

Введение в vba

Учебное пособие

ИЗДАТЕЛЬСТВО

САНКТ-ПЕТЕРБУРГСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА

ЭКОНОМИКИ И ФИНАНСОВ

2010

А.М. Власовец

Введение в VBA. Учебное пособие. – СПб.: Изд-во СПбГУЭФ, 2010.–134с.

Рецензенты: – д-р экон.наук, проф. А.В. Завгородняя

д-р техн.наук, проф.Е.П. Истомин

©Издательство СПбГУЭФ, 2010

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

VBA – это языковый процессор интерпретирующего типа, который построчно анализирует исходную программу и одновременно выполняет предписанные действия.

“Язык программирования – формальная знаковая система, предназначенная для записи программ. Программа обычно представляет собой некоторый алгоритм в форме, понятной для исполнителя. Язык программирования определяет набор лексических, синтаксических и семантических правил, используемых при составлении компьютерной программы. Он позволяет программисту точно определить то, на какие события будет реагировать компьютер, как будут храниться и передаваться данные, а также какие именно действия следует выполнять над этими данными при различных обстоятельствах.” [Материал из Википедии – свободной энциклопедии]

Язык программирования VBA (Visual Basic for Application) пакета Microsoft Office предназначен для автоматизации разработки документов при решении задач, использующих приложения этого пакета: Excel, Word, Access, PowerPoint, Outlook, – начиная с проектирования простых документов и кончая автоматизацией документооборота. VBA разработан на основе языка Visual Basic, является языком программирования высокого уровня, и в нем широко используются элементы объектно-ориентированного и событийно-управляемого программирования. VBA предоставляет пользователю возможность создания экранных форм со стандартным набором элементов управления и написания процедур, обрабатывающих события, которые возникают при тех или иных действиях системы и конечного пользователя.

При разработке приложений в VBA можно использовать средства процедурного программирования и объектно-ориентированного программирования.

Процедурное программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 40-х годах. Теоретической моделью процедурного программирования служит алгоритмическая система под названием «машина Тьюринга».

Программа на процедурном языке программирования состоит из последовательности операторов (инструкций), задающих процедуру решения задачи. Основным является оператор присваивания, служащий для изменения содержимого областей памяти. Выполнение программы сводится к последовательному выполнению операторов с целью преобразования значений исходных данных в результаты. Примерами процедурных языков программирования являются Assembler, Pascal, C, PL/1, FORTRAN.

Объектно-ориентированное программирование (ООП) – это совокупность подходов, методов, стратегий, идей и понятий, определяющая стиль написания программ, в которой основными концепциями являются понятия объектов и классов.

Объект – это некоторая сущность, обладающая определённым состоянием и поведением, имеет заданные значения атрибутов и операций. Как правило, при рассмотрении объектов выделяется то, что объекты принадлежат одному или нескольким классам, которые в свою очередь определяют поведение объекта.

Класс — это тип, описывающий устройство объектов. Понятие “класс” подразумевает некоторое поведение и способ представления. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам конкретной предметной области.

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

Наряду со свойствами и методами с классом связывается еще одно понятие - событие. Каждый класс имеет определенный набор событий, которые могут возникать при работе с объектами класса, чаще всего при определенных действиях пользователя, иногда как результат действия системы. При возникновении события, связанного с тем или иным объектом, система посылает сообщение объекту, которое может быть обработано методом – обработчиком события, специально созданным при конструировании объекта. События обеспечивают большую гибкость при работе с объектами. Методы класса выполняются одинаково для всех объектов класса, а на события каждый объект реагирует индивидуально, поскольку имеет собственный обработчик события.

Любой объект может принадлежать или не принадлежать определенному классу, то есть обладать или не обладать поведением, которое данный класс подразумевает. Класс определяет для объекта правила, с помощью которых с объектом могут работать другие объекты, что обычно делается с помощью определения методов класса. Кроме того, классы могут находиться друг с другом в различных отношениях, таких как наследование.

Наследование – один из четырёх важнейших механизмов объектно-ориентированного программирования наряду с инкапсуляцией, полиморфизмом и абстракцией, позволяющий описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом. Другими словами, класс-наследник реализует спецификацию уже существующего класса, добавляя при необходимости новые свойства и методы. Набор классов, связанных отношением наследования, называют иерархией. Это позволяет обращаться с объектами класса-наследника точно так же, как с объектами базового класса.

Инкапсуляция – свойство языка программирования, позволяющее объединить данные и код в объект и скрыть реализацию объекта от пользователя. При этом пользователю предоставляется только интерфейс объекта, т.е. способ взаимодействия с объектом. Пользователь может взаимодействовать с объектом только через этот интерфейс.

Полиморфизм – это явление, при котором один и тот же программный код выполняется по-разному в зависимости от того, объект какого класса используется при вызове данного кода. Полиморфизм обеспечивается тем, что в классе-потомке изменяют реализацию метода класса-предка с обязательным сохранением сигнатуры метода1. Это обеспечивает сохранение неизменным интерфейса класса-предка и позволяет осуществить связывание имени метода в коде с разными классами – из объекта какого класса осуществляется вызов, из того класса и берётся метод с данным именем. Такой механизм называется динамическим (или поздним) связыванием, в отличие от статического (раннего) связывания, осуществляемого на этапе компиляции.

Абстракция да́нных – подход к обработке данных по принципу чёрного ящика. Чёрный ящик – термин, используемый в точных науках для обозначения системы, механизм работы которой очень сложен, неизвестен или неважен в рамках данной задачи. Такие системы обычно имеют некий “вход” для ввода информации и “выход” для отображения результатов работы. Состояние выходов обычно функционально зависит от состояния входов. Данные обрабатываются функцией высокого уровня с помощью вызова функций низкого уровня. Обычно такой подход используется в объектно-ориентированном программировании, что позволяет работать с объектами, не вдаваясь в особенности их реализации.

При разработке программ на VBA можно использовать методы и средства как процедурного программирования, так и объектно-ориентированного программирования. Практически все инструкции, включая работу с файлами на внешних носителях информации, и большинство функций языка VBA имеют аналоги в языках процедурного программирования таких, например, как Algol, Fortran, Pascal. Поэтому любую программу, написанную на этих языках, можно написать на VBA. Но поскольку VBA предназначен для программирования в среде MS Office, то доступ программам на этом языке может быть осуществлён только через приложения MS Office Excel, Word, Access и других приложений MS Office.

Объектно-ориентированное программирование предоставляет возможность применять при разработке приложений средства для использования в программе такие объекты как, например, рабочий лист, диапазон ячеек, пользовательская форма, таблица, диаграмма – в Excel; документ, шрифт, область в документе, стиль в документе, таблица – в Word.

Упорядоченный набор однотипных объектов – экземпляров одного класса называется семейством. Семейство тоже является объектом. Одним из методов этого объекта является процедура, возвращающая ссылку на конкретный объект в семействе, а одним из свойств семейства – число объектов, хранящихся в нем. Например, совокупность листов в приложении Excel образует семейство Worksheets.

Объекты и семейства сгруппированы в виде иерархических структур, которые называются объектными моделями. В VBA определены специальные объектные модели для каждого приложения семейства Microsoft Office и объектные модели, общие для всех приложений Microsoft Office. Объектные модели VBA можно изучать, используя справочную систему и окно просмотра объектов. Окно просмотра объектов представляет собой специальное средство редактора Visual Basic, позволяющее просматривать содержимое библиотек объектов и производить поиск справочной информации. Каждое из приложений Microsoft Office предоставляет свои объектные модели в виде одноименной библиотеки объектов.

Принцип разработки документов с использованием VBA одинаков для всех приложений Microsoft Office. Наиболее развитой и чаще всего используемой является объектная модель Excel. Поэтому в дальнейшем методика разработки приложений в VBA будет производиться на примере Excel. Освоив применение VBA для Excel, не трудно сделать это и для других приложений Microsoft Office. Для этого необходимо изучить объектную модель соответствующего приложения.

С помощью VBA в Excel можно выполнять такие действия как, например:

  • автоматизировать решение повторяющихся задач;

  • настроить интерфейс Excel с помощью изменения существующих или создания новых панелей инструментов, меню и пользовательских форм;

  • добавить новые функции в Excel;

  • создавать сложные отчеты;

  • манипулировать данными и осуществлять анализ данных.

При применении процедурных языков программирования большая часть средств разработки приложений реализуется средствами работы с файлами: поиск, открытие, сохранение, печать и т.п., – а также возможностями работы с фрагментами файлов: вырезание, вставка, копирование. В Excel для создания кода программ все основные средства его разработки уже имеются в приложении: средства манипулирования файлами, редактирования данных и форматирования, и их можно использовать. VBA обеспечивает также доступ к библиотеке функций Excel, позволяет использовать такие средства, как Microsoft SQL Server, включая OLAP Services, или средства создания отчетов и форм Microsoft Access.