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 послужил один и тот же язык программирования, вероятно, многим придет в голову мысль воспользоваться им. Точно так же, как пользователям Windows для подготовки множества программ необходимо освоить один интерфейс, в 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.