Описание VBA

ВВЕДЕНИЕ

Microsoft Excel имеет встроенный язык программирования - Visual Basic for Аpplications (VBA). Этот язык позволяет создавать приложения, выполняемые в среде Microsoft Office. Это могут быть разнообразные аналитические программы, финансовые системы, программы учета кадров, системы автоматического создания официальных писем/документов с помощью библиотеки готовых шаблонов и т.п. При этом интерфейс создаваемой программы может быть совершенно непохожим на интерфейс того приложения, в котором она написана.

VBA сочетает в себе практически неограниченные возможности с простотой изучения и использования. Теперь большинство функций можно описать, не прибегая к программированию. В том случае, если возможностей языка недостаточно, можно обратиться к API-функциям Windows. Пожалуй, самое главное достоинство VBA в том, что этот язык является единым для всех офисных приложений Microsoft и поэтому позволяет связывать их между собой. Уже сейчас из программы, написанной в Excel, можно обращаться к объектам Word для Windows, а также Microsoft Project. Это открывает заманчивые перспективы. Представьте, что пользователь на конкретном рабочем месте должен на основе некоторых данных, извлекаемых из базы, делать их анализ, строить диаграммы и проектировать деятельность организации, а также автоматически выполнять рассылку этих обработанных данных по некоторым адресам вместе с сопроводительным письмом. Все это можно сделать средствами офисных продуктов Microsoft, однако при этом пользователь должен в совершенстве овладеть каждым из них. В случае если программа для решения этой задачи написана на VBA, пользователю придется изучить только ее.

Программа MS Excel, являясь лидером на рынке программ обработки электронных таблиц, определяет тенденции развития в этой области. Вплоть до версии 4.0 программа Excel представляла собой фактический стандарт с точки зрения функциональных возможностей и удобства работы.

Одним из важнейших функциональных расширений программы, предназначенным для профессионалов, является встроенная в Excel Среда программирования Visual Basic (VBA) для решения прикладных задач. Благодаря VBA фирме Microsoft удалось не только расширить возможности языка макрокоманд Excel 4.0, но и ввести новый уровень прикладного программирования, поскольку VBA позволяет создавать полноценные прикладные пакеты, которые по своим функциям выходят далеко за рамки обработки электронных таблиц.

Краткое описание VBA

Visual Basic for Applications пред­ставляет собой новаторское дости­жение в языках программирова­ния, возможно наиболее значи­тельное с тех пор, как состоялся выпуск первой интегрированной среды разработки. Это означает, не то что VBA — лучшее средство разработки, а лишь то, что VBA существует. Visual Basic, вероятно, самое популярное средство разра­ботки, и теперь совершенно не­ожиданно этот язык включен в не менее популярный комплект при­кладных программ.

Поскольку основой приложе­ний Microsoft послужил один и тот же язык программирования, веро­ятно, многим придет в голову мысль воспользоваться им. Точно так же, как пользователям Win­dows для подготовки множества программ необходимо освоить один интерфейс, в VBA достаточ­но изучить одну среду программи­рования, чтобы составлять разно­образные приложения. Около 40 компаний — производителей про­граммного обеспечения заключили с корпорацией Microsoft соглаше­ние о включении VBA в их про­дукты. Первой из этих компаний на рынок вышла фирма Visio Corp., которая интегрировала VBA в пакеты Visio Professional и Visio Technical, версия 4.5. Можно ожидать от таких фирм агрессивной рыночной политики в отношении VBA, поскольку с этим языком их продукты оказались в заметном выигрыше. Настоящее имя VBA — Visual Basic Application Edition, и он на самом деле относится к семейству VB, следовательно, вы­зывает повышенный интерес как самостоятельное инструменталь­ное средство.

Встраивание VBA в какое-то приложение означает для него со­здание объектной модели, в ре­зультате VBA-программа может обращаться к объектам этого приложения и манипулировать ими. Для изделий фирмы Visio к числу таких объектов могут относиться как прямоугольник на рисунке, так и сам рисунок, а объектная модель распространяется на все эти элементы.

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

Точно так же, как можно составить макроко­манду Office, которая обращается к программам Word и Excel, мож­но разработать VBA-программу, сочетающую в себе средства Access и Visio. Составное приложение для планировки кухни можно считать неким гибридом Access с механиз­мом черчения или Visio с базой данных.

VBA — собственное подмно­жество VB5, но на самом деле в VBA есть почти все, что можно найти в VB5. Надо признать, что незначительные отличия все же имеются (например, запуск из Word, а не в автономном режиме), но в любом случае программиро­вание осуществляется одинаково. Объектные модели Office 97 име­ют силу до тех пор, пока вы­полняются приложения, которым они принадлежат, поэтому и VBA, и VB5 могут манипулировать ими. Vs Мы видим, что от аналогичной в VB5 интегрированная среда разработ­ки в VBA почти ничем не отли­чается.

ПРИМЕР ВЗАИМОДЕЙСТВИЯ EXCEL И VISUAL BASIC

Начиная с версии 5.0 в программу Excel включен специальный язык программирования, который получил название Visual Basic for Applications (VBA).

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

Разработка языка программирования VBA, встраиваемого в прикладные системы, является одним из стратегических направлений компании Microsoft. Этот язык уже интегрирован в такие программы, как Word for Windows, Power Point и ряд других. VBA позволяет создавать программные модули, меню, диалоговые окна и другие ресурсы в среде Windows. Благодаря этому языку появляется возможность значительно расширить набор функций в Excel, а также создавать функции, значения которых зависят от некоторых условий и событий. В принципе, можно полностью перепрограммировать все функции программы Excel, если в этом появилась необходимость.

Программирование табличных функций.

Чтобы создать отдельный рабочий лист для программного модуля, щелкните по пиктограмме Insert Module из пиктографического меню Visual Basic (1-я пиктограмма) или вызовите директиву Module из меню Insert Macro. После этого появится новый рабочий лист "Modele1". В программном модуле нужно описать функцию на языке VBA. В окне программного модуля можно работать, как в окне небольшого текстового редактора, но при этом необходимо помнить, что Вы пишите текст программы. Описание функции должно начинаться оператором Function, за которым через пробел следуют название функции и ее аргументы, заключенные в скобки и разделенные запятыми. Затем идет собственно текст программного кода функции, а заканчиваться описание должно оператором End Function.

Если в тексте программного кода имя определяемой функции будет находиться в левой части оператора присваивания (обозначаемого знаком равенства), то присвоенное значение и будет результатом вычисления функции при заданных аргументах. В качестве примера можно рассмотреть функцию, которая вычисляет налог на добавленную стоимость.

Function NDS(Value)

NDS=Value*0.15

End Function

Встраивание функций.

Щелкните по 3-й пиктограмме Object Browser из пиктографического меню VBA или вызовите одноименную директиву из меню View.

Функции, определенные пользователем, рассматриваются в программе Excel как самостоятельные объекты. В поле списка Methods/Properties: будет находиться имя новой функции. Щелкните мышью сначала по имени, а затем по командной кнопке Options, тогда откроется диалоговое окно Macro Options. В поле Description: введите поясняющий текст, который позднее будет использован Конструктором функций. В списке Function Category укажите категорию, в которую Вы хотите записать свою функцию. Например, функцию, вычисляющую налог на добавленную стоимость, следует поместить в категорию Financial. В дальнейшем Конструктор функций поместит Вашу функцию в указанную Вами категорию. Закройте окно Macro Options щелчком по командной кнопке OK, а окно Object Browser - кнопкой Close.

Применение функций.

Перейдите на рабочий лист, где будет расположена таблица. Переместите указатель ячеек в ячейку, в которой будет находиться формула, и введите в нее знак равенства. Затем щелкните по 14-й пиктограмме Конструктора функций на основной пиктографической панели.

Появится диалоговое окно Конструктора функций. На первом шаге выберите категорию Financial и в правом поле найдите свою функцию NDS. Щелкните по названию этой функции, после чего перейдите к следующему шагу, щелкнув по командной кнопке Next.

Откроется второе диалоговое окно Конструктора функций. Здесь можно будет увидеть Ваш комментарий к функции, который был введен ранее в окне макроопций. Укажите единственный аргумент для этой функции Value и закройте диалоговое окно Конструктора щелчком по кнопке Finish.

В таблице появится значение, составляющее 15% величины аргумента. В таблице с этой функцией можно работать как с обычной функцией программы Excel.