Разработка на языке vba макросов и модулей, расширяющих функциональные возможности офисного пакета
Вид материала | Документы |
СодержаниеКраткое описание VBA Пример взаимодействия excel и visual basic Программирование табличных функций. Встраивание функций. |
- Создание пользовательского интерфейса с применением макросов в приложении Excel, 165.13kb.
- Курсовая работа состоит из отдельных модулей, каждый из которых отвечает за определенные, 44.84kb.
- Учебной программы дисциплины «Программирование на языке vba» для ооп «050100. 62 Педагогическое, 13.46kb.
- Для отладки и редактирования программы Run для проверки работоспособности программы,, 78.29kb.
- Функциональные возможности, 34.58kb.
- Лекция Введение в модели объектов Влюбом приложении Office две основные составляющие:, 88.41kb.
- Оценка пакета акций это определение стоимости части активов бизнеса и нюансов, оказывающих, 31.21kb.
- Вопросы к экзамену по дисциплине «спортивная физиология», 205.39kb.
- План Введение. Начало пути. Редактирование, удаление, переименование и назначение макросов, 283.36kb.
- Программирование на языке высокого уровня, 59.92kb.
Разработка на языке VBA макросов и модулей, расширяющих функциональные возможности офисного пакета.
Даниелян Армен Владиславович иМ3
Введение
Visual Basic for Аpplications (VBA). Этот язык позволяет создавать приложения, выполняемые в среде Microsoft Office. Это могут быть разнообразные аналитические программы, финансовые системы, программы учета кадров, системы автоматического создания официальных писем/документов с помощью библиотеки готовых шаблонов и т.п. При этом интерфейс создаваемой программы может быть совершенно непохожим на интерфейс того приложения, в котором она написана.
VBA сочетает в себе практически неограниченные возможности с простотой изучения и использования. Теперь большинство функций можно описать, не прибегая к программированию. В том случае, если возможностей языка недостаточно, можно обратиться к API-функциям Windows. Пожалуй, самое главное достоинство VBA в том, что этот язык является единым для всех офисных приложений Microsoft и поэтому позволяет связывать их между собой. Уже сейчас из программы, написанной в Excel, можно обращаться к объектам Word для Windows, а также Microsoft Project. Это открывает заманчивые перспективы. Представьте, что пользователь на конкретном рабочем месте должен на основе некоторых данных, извлекаемых из базы, делать их анализ, строить диаграммы и проектировать деятельность организации, а также автоматически выполнять рассылку этих обработанных данных по некоторым адресам вместе с сопроводительным письмом. Все это можно сделать средствами офисных продуктов Microsoft, однако при этом пользователь должен в совершенстве овладеть каждым из них. В случае если программа для решения этой задачи написана на VBA, пользователю придется изучить только ее.
Краткое описание VBA
Visual Basic for Applications представляет собой новаторское достижение в языках программирования, возможно наиболее значительное с тех пор, как состоялся выпуск первой интегрированной среды разработки. В 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
Введение достаточно мощного языка программирования в 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.
Минск 2008