Н.В.
Нечитайло, магистр естественных наук по специальности 6N0602 – Информатика
Костанайский
государственный университет имени А.Байтурсынова, Казахстан
Программирование на VBA в среде Microsoft Excel
Программирование в Microsoft Excel
сводится, в основном, к управлению объектами. Эта задача выполняется с помощью
инструкций, введённых на языке, понятном Excel. Язык программирования Visual Basic
for Application
(VBA) - составная часть всех последних версий приложений MS Office (Word, Excel, Access и
т.д.), предназначенный для создания дополнительных решений не выходя из среды
этого приложения. Первая версия VBA появилась
как упрощенное подмножество более раннего языка Microsoft Visual Basic (VB). Однако по
мере развития VB и VBA фирма – разработчик этих языков Microsoft практически их объединила.
Многие опытные программисты не
воспринимают идею программирования на Basic
всерьёз, поскольку само название (Beginner’s All-purpose Symbolic Instruction Code – универсальный символический
язык инструкций для начинающих) предполагает, что это не профессиональный язык.
В 1963 году профессорами Дартмутского университета Дж. Кенеми и Т. Куртцом был
разработан Basic. Basic довольно быстро приобрёл большую популярность, и
сейчас поддерживается во многих типах компьютеров. Basic первого поколения применялся в 70-е годы в основном
на мини- и микро-ЭВМ.
С появлением в начале 80-х годов
персональных компьютеров началось развитие систем программирования на основе Basic второго поколения. В конце 80-х насчитывалось около
десятка Basic-систем различных фирм-разработчиков. С 1989 года этим
языком стала заниматься только компания Microsoft. Basic стал
намного популярнее в 1991 году, когда компания Microsoft выпустила Visual Basic третьего поколения для Windows. Этот продукт облегчил массовую разработку
самостоятельных приложений для Windows. В 1995
году компания Microsoft значительно расширила
возможности пакета Office за счёт доступа к объектным
моделям приложений. С этих пор язык VBA,
поддерживающий спецификацию COM (Сomponent Object Model), позволяет пользователю
легко и понятно манипулировать объектами приложений. Применительно к среде Excel такими объектами являются рабочие листы, диапазоны,
ячейки и т.д.
В настоящее время VB и VBA являются
самыми популярными в мире инструментами разработки приложений, с которыми
работают несколько десятков миллионов программистов. [1]
Для разработки итогового документа VBA предоставляет
возможность непосредственной работы с любыми объектами MS Office, что является его отличительной
особенностью. Программа в объектно-ориентированной среде представляет собой
сложную иерархическую структуру, называемую проектом, который может включать в
себя модули, формы и объекты приложения. Модуль – это именованная программная
единица, состоящая из раздела объявлений модуля и процедур. В разделе описаний
модуля объявляются переменные и константы. Различают 2 основных типа модулей –
стандартные и модули объектов. Стандартные модули могут содержать программные
коды доступных для всего проекта процедур и функций. В модулях класса
содержится описание нового объекта. Новый объект создаётся при создании нового
экземпляра класса. Модуль форм является модулем объекта и содержит процедуры
обработки событий формы пользователя и размещённых на ней элементов управления.
Листы рабочей книги Excel так же являются объектами,
на которых могут размещаться визуальные элементы управления. Каждый рабочий
лист связан с отдельным модулем рабочего листа, в котором записываются
процедуры обработки событий листов и размещённых на них элементов управления.
Для каждого рабочего листа автоматически создаётся свой модуль.
Благодаря Microsoft Excel
пользователь имеет возможность автоматизировать программирование любой последовательности
действий и при этом не обязательно знание программирования. Такая программа
называется макрос. Макрос – процедура, записанная на языке VBA, в которой запрограммировано выполнение действий
пользователя. Макрос создаётся с помощью предназначенной для этой цели
специальной программы – «Macrorecoder» -
средство автоматизации программирования действий пользователя. Макрос имеет
структуру процедуры Sub...End Sub. Он
записывается средствами приложения Excel и
запускать его на выполнение лучше из Excel, не
прибегая к помощи редактора VBE. [2]
Визуальные элементы управления впервые примененные
в первой версии Visual Basic, в 1991 году значительно упростили программирование
интерфейса прикладной программы, работающей в новой для того времени операционной
среде Windows. Элемент управления – объект, помещаемый
пользователем в форму или на рабочий лист и имеющий собственный набор
распознаваемых свойств, методов и событий. Размещение элементов управления в
форме пользователя осуществляется при помощи панели инструментов VBA «ToolBox», которая появляется на экране при вставке формы.
Среди множества элементов управления наиболее часто используются – «Командная
кнопка» (CommandButton), «Текстовое поле» (TextBox) и «Надпись» (Label). Элемент CommandButton всегда связан с процедурой обработки событий; Элемент TextBox используется для ввода информации в программу или
вывода сообщений. Элемент «Надпись» (Label)
применяется только для вывода различных текстов в форме, а также рисунков.
Элементы управления начинают работать и реагировать на действия пользователя
только после того, как они помещены на рабочий лист или форму пользователя.
Для разработки более удобных и
разнообразных окон пользователя применяется объект «Форма» (UserForm). Форма – это окно, конструируемое пользователем.
Объект UserForm представляет собой диалоговое окно, являющееся
составной частью интерфейса пользователя в приложении. Для того чтобы вставить
форму в проект нужно использовать вставку «UserForm» из меню «Вставка». Формам пользователя присущи также
и методы, которые позволяют воздействовать на неё. Например, Load – загружает форму пользователя в оперативную память,
но не отображает её на экране; Unload – удаляет
форму из памяти; Show – отображает на экране форму
пользователя. Программирование работы с формами пользователя заключается в
написании процедур реакции на различные события, которые могут произойти при
работе пользователя с формой. При создании объекта UserForm VBA
система автоматически создаёт связанный с ним модуль. В этом модуле размещаются
процедуры обработки событий Формы и размещённых в ней элементов управления. [3]
Литература:
1. Джон Уокенбах. Профессиональное программирование на VBA в Excel.
Диалектика. М., С-Пб., Киев, 2003.
2. Г.В.Росляков. Программирование на VBA для Excel: Учеб. пособие.
МГУДТ, 2006.
3. П.П. Мельников, И. В. Миронова, И. Ю. Шполянская. Практикум по
экономической информатике. Часть III. Изд. «Перспектива», Москва 2002.