Н.В. Нечитайло, магистр естественных наук по специальности 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 всерьёз, поскольку само название (Beginners 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, поддерживающий спецификацию COMomponent 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.