Стандартные возможности среды по работе с документами. Области применения офисного программирования и назначение офисных приложений. Определение преимуществ, которые получает конечный пользователь, использующий программируемые офисные документы.
Аннотация к работе
Среда приложений Office ориентирована в первую очередь на пользователей, а не на программистов и в ней можно создавать документы без всякого программирования. Поэтому программист обычно начинает работать с документами не на пустом месте, а с их заготовками, созданными пользователями, т.е. и сам программист может выступать в роли пользователя. Среда MS Office предлагает два способа создания программ, отличающихся подходом к процессу: использование макрорекордера и написание исходного кода программ на языке VBA в интегрированной среде разработки. Для записи и воспроизведения макроса не требуется специальных знаний, поэтому пользователь может самостоятельно создавать программы (макросы), в общем случае даже не представляя себе как они работают. Для записи макроса в приложении Microsoft Office можно использовать меню "Сервис/Макрос/Начать запись" или выбрать кнопку "Записать макрос" на панели инструментов Visual Basic.
Введение
Офисное программирование - это процесс разработки приложений, предназначенных для автоматизации офисной деятельности с использованием специализированных пакетов (MS Office, OPENOFFICE.org или подобных).
Офисное программирование как процесс разработки приложений имеет ряд особенностей по сравнению программированием как таковым. В основном они проявляются в таких аспектах, как: · цель разработки;
· область применения;
· язык программирования;
· среда разработки;
· поддержка объектно-ориентированного программирования.
Рассмотрим эти особенности на примере MS Office.
Цель разработки
В офисной среде программный проект неразрывно связан с документом, хранится как часть документа и не может существовать независимо от него. Документ, а не программа, является целью разработки.
Стандартные возможности среды по работе с документами велики. Однако возможность изменить типовой документ, снабдив его дополнительными функциями - это одна из важнейших задач офисного программирования. Для ее решения офисная среда представляет совокупность библиотек классов, которые составляют каркас (Framework) текстовых документов, электронных таблиц, презентаций, баз данных и приложений на основе этих документов. Всякий раз, когда создается новый документ, его каркас составляют объекты библиотек, заданные по умолчанию. Этот каркас можно существенно изменить, добавив в документ новые свойства. Расширение каркаса не требует от программиста значительных усилий - достаточно включить в него необходимые библиотеки классов.
Область применения
Область применения офисного программирования весьма и весьма широка - от настройки отдельных документов до решения задач автоматизации офисной деятельности масштаба предприятия, в т.ч. ориентированных на совместную работу в глобальной сети.
Понятно, что основное назначение офисных приложений - автоматизация офисной деятельности, однако, средства офисного программирования применяют и для совсем других разработок, выходящих далеко за ее рамки.
Язык программирования
Единственный язык программирования, поддерживаемый пакетом MS Office является Visual Basic for Application (VBA). VBA - это инструмент разработки приложений, который позволяет создавать программные продукты, решающие практически все задачи, встречающиеся в среде MS Windows. В случае офисных приложений, программы или макросы на VBA можно использовать, например, для оформления документов (подготовки текстов) или анализа данных таблиц (электронных таблиц).
VBA - уникальное приложение, поскольку оно встраивается в другое приложение и расширяет его функциональные возможности. С помощью VBA можно: · создать собственное диалоговое окно и придать ему требуемый внешний вид;
· создать макросы, расширяющие функциональные возможности приложения, в которое встроен VBA;
· изменить меню приложения Microsoft Office;
· управлять другим приложением Microsoft Office или принадлежащими ему данными;
· объединить данные из нескольких приложений Microsoft Office в одном документе;
· автоматически создавать или изменять страницы Web, совместно используя приложения Microsoft Office и VBA.
Для разработчика доступны следующие инструменты и средства, которые используются при создании проекта VBA: · отладка приложений без предварительной компиляции;
· средства Win32 API;
· SQL и объекты доступа к данным для управления данными и извлечения их из внешних источников данных, таких как Microsoft SQL Server;
· построение и проверка элементов интерфейса непосредственно в среде разработки VBA (Integrated Development Environment, IDE);
· связывание программ и процедур с событиями, которые возникают в приложениях VBA.
Среда разработки
Среда приложений Office ориентирована в первую очередь на пользователей, а не на программистов и в ней можно создавать документы без всякого программирования. Поэтому программист обычно начинает работать с документами не на пустом месте, а с их заготовками, созданными пользователями, т.е. и сам программист может выступать в роли пользователя. Средства совместной работы над документами Office обеспечивают одновременную работу программистов и пользователей.
Среда MS Office предлагает два способа создания программ, отличающихся подходом к процессу: использование макрорекордера и написание исходного кода программ на языке VBA в интегрированной среде разработки. Эти подходы ориентированы на разные категории: непосредственно пользователей и программистов соответственно.
Макрорекордер (MACRORECORDER) - это программный инструмент, записывающий действия пользователя при работе с документами и приложениями, с сохранением записи в виде макроса - исходного кода на языке VBA. При вызове сохраненного макроса воспроизводится вся сохраненная последовательность действий.
Макрорекордер представляет возможность создания программного проекта или, по крайней мере, его отдельных компонентов автоматически, без программирования. Для записи и воспроизведения макроса не требуется специальных знаний, поэтому пользователь может самостоятельно создавать программы (макросы), в общем случае даже не представляя себе как они работают.
Для программиста макрорекордер полезен тем, что позволяет создавать фрагменты программы автоматически, тем самым увеличивая скорость разработки и уменьшая время отладки.
Интегрированная среда разработки на VBA (Visual Basic Environment, VBE) - встроенное в MS Office средство для написания, тестирования и отладки приложений на VBA. Среда VBE представляет все возможности для создания законченных офисных приложений, включая средства визуального проектирования пользовательского интерфейса. VBE ориентирована на использование программистами для разработки офисных приложений (это отнюдь не означает, что пользователи не могут применять VBE).
Поддержка ООП
Разработка приложений для MS Office тесно связана с парадигмой объектно-ориентированного программирования. Все документы (более того, сами компоненты пакета) в MS Office - суть объекты, наделенные собственными наборами свойств (характеристик объекта), методов (подпрограмм управления свойствами) и событий (подпрограмм, обрабатывающих изменения состояния объекта в результате некоторых действий). Соответственно, для обеспечения более полной интеграции с пакетом, входной язык (VBA) также поддерживает ООП. Все объекты приложения MS Office образуют иерархическую структуру, которая определяет связь между ними и способ доступа. Такая структура называется объектной моделью (object model).
За рамки объектной модели выходят, но также могут использоваться в офисных приложениях, внешние объекты, поддерживающие технологии DDE, OLE/ACTIVEX и ряд других. В объектно-ориентированную концепцию удачно вписывается технология визуального программирования. Все отображаемые элементы графического интерфейса, такие как формы, элементы управления, меню и панели инструментов являются объектами, наделенными набором свойств и методов и способными реагировать на события (например, щелчки мыши, нажатия клавиш и т.п.). При визуальном подходе не требуется программного задания (хотя это и возможно) их основных свойств (например, ширина или высота, цвет фона и т.п.). Эти свойства можно задать при помощи мыши (например, ширину и высоту формы путем операции «перетаскивания» маркеров) или установить их в окне свойств (название формы, цвет фона формы и т. д.).
Таким образом, визуальное программирование делает проектирование интерфейса программы более наглядным и быстрым. При этом сохраняется возможность управлять всеми объектами и программно.
Преимущества, которые получает конечный пользователь, использующий программируемые офисные документы: · Пользователь получает документы, обладающие новыми функциями и способные решать задачи, характерные для проблемной области пользователя.
· Пользователь находится в единой офисной среде независимо от того, с каким документом он работает в данный момент и какой программист разрабатывал этот документ.
· Большинство доступных при работе с документами функций являются общими для всех документов, поскольку их предоставляет сама офисная среда. Единый стиль интерфейса разных документов облегчает работу с ними.
· Пользователь сам, не будучи программистом, способен создавать простые виды программируемых офисных документов, постепенно совершенствуясь в этой деятельности.
Преимущества, которые получает программист, работающий в Office: · В распоряжении программиста находится мощная интегрированная среда. Для него эта среда представлена в виде совокупности хорошо организованных объектов, доступных в языке программирования и по принципу работы ничем не отличающихся от встроенных объектов языка или объектов, создаваемых самим программистом.
· Большинство повседневных задач становятся для него простыми, - чтобы их решить, зачастую достаточно стандартных средств.
· Там, где стандартных средств не хватает, где у документа должны появиться новые функциональные возможности, где необходимо создать документ по заказу, вступает в силу язык программирования - VBA, существенная особенность которого - возможность работы с объектами любого из приложений Office.
· Офисное программирование позволяет применять на практике идеи компонентного программирования. Компонентный подход предполагает взаимодействие компонентов, создаваемых в разных программных средах, на разных языках, на разных платформах и находящихся на разных машинах. Работа с компонентами (DLL, ACTIVEX, ADDINS, COMADDINS) является неотъемлемой частью офисного программирования.
Макросы. Использование макрорекордера
Независимо от используемых операционной системы и программных приложений MS Office пользователь часто выполняет одни и те же последовательности команд для многих рутинных задач. Вместо повторения последовательности команд каждый раз, когда необходимо выполнить какую-либо задачу, можно создать макрос (macro), который вместо пользователя будет выполнять эту последовательность. Термин macro произошел от греческого слова, означающего расширенный или растянутый.
Макрос - это программа (в контексте офисного программирования - созданная автоматически), состоящая из списка команд, которые должны быть выполнены приложением.
Основными преимуществами использования макросов являются: · повышение точности и скорости работы, поскольку компьютеры лучше приспособлены для выполнения повторяющихся задач, чем человек;
· при выполнении макросов обычно нет необходимости в присутствии человека-оператора; в случае, если макрос очень длинный и выполняет операции, требующие значительного времени (например, поиск в базе данных и сортировка), пользователь может переключиться на другое приложение.
Макрос служит для объединения нескольких различных действий в одну процедуру, которую можно легко вызвать. Этот список команд состоит в основном из макрокоманд, которые тесно связаны с приложением, в котором создается макрос - т.е. с командами Word, Excel или других приложений Microsoft Office.
Можно выделить три основные разновидности макросов: 1. Командные макросы - это наиболее распространенные макросы, обычно состоящие из операторов, эквивалентным тем или иным командам меню или параметрам диалоговых окон. Основным предназначением такого макроса является выполнение действий, аналогичных командам меню - т.е. изменение окружения и основных объектов приложения.
2. Пользовательские функции - работают аналогично встроенным функциям приложения. Отличие этих функций от командных макросов состоит в том, что они используют значения передаваемых им аргументов, производят некоторые вычисления и возвращают результат в точку вызова, но не изменяют среды приложения.
3. Макрофункции - представляют сочетание командных макросов и пользовательских функций. Они могут использовать аргументы и возвращать результат, подобно пользовательским функциям, а также могут изменять среду приложения, как и командные макросы. Чаще всего эти макросы вызываются из других макросов, и активно используются для модульного программирования.
Поддержка макросов позволяет порой обойтись вообще безо всякого программирования: достаточно включить автоматическую запись выполняемых пользователем действий и в результате получить готовый макрос, а затем назначить ему кнопку на панели инструментов или новую команду меню, которые будут использоваться для вызова. Простые макросы удается создавать, не написав вручную ни одной строки программного кода. Для разработки же серьезных приложений приходится программировать.
Таким образом, различают 2 способа разработки макроса: · автоматическое создание, с использованием макрорекордера;
· написание макроса "с нуля", используя язык программирования VBA.
Отметим, что возможен и комбинированный подход: фрагменты будущей программы записываются автоматически, а затем они корректируются и дополняются "рукописным" кодом. Для записи макросов из приложений Microsoft Office используется макрорекордер. Это встроенный инструмент, который фиксирует все действия пользователя, включая ошибки и неправильные запуски. При выполнении макроса интерпретируется каждая записанная макрорекордером команда точно в такой последовательности, в которой пользователь выполнял их во время записи.
Для записи макроса в приложении Microsoft Office можно использовать меню "Сервис/Макрос/Начать запись" или выбрать кнопку "Записать макрос" на панели инструментов Visual Basic. До начала записи нужно указать имя макроса и определить, где он будет храниться и как будет доступен. Затем выполнить действия, которые требуется сохранить в макросе. Для завершения записи нужно на панели инструментов "Остановка записи" щелкнуть кнопку "Остановить запись". Для выполнения макроса необходимо: 1. Установить курсор в место вставки выполнения макроса.
2. Выбрать пункт меню "Сервис/Макрос/Макросы".
3. В появившемся диалоговом окне "Макрос" выбрать имя нужного макроса и выбрать "Выполнить".
Чтобы просмотреть код записанного макроса, надо выбрать меню "Сервис/Макрос/Макросы". В появившемся диалоговом окне выбрать имя нужного макроса и щелкнуть кнопку "Изменить". Исходный код указанного макроса будет загружен в окно редактора Visual Basic.
Структура записанного макроса
Макросы, создаваемые макрорекордером MS Office, сохраняются в специальной части файла данных, называемой модулем. Модуль VBA содержит исходный код программы на языке VBA. Фактически макрос является подпрограммой (а точнее, процедурой) VBA. Записанный макрос имеет строго определенную структуру. Ниже представлен исходный код простого макроса, созданного в Microsoft Word.
Листинг 1. Пример макроса
Sub Hello() " Макрос изменяет размер, начертание шрифта, выравнивание абзаца и " выводит надпись в активный документ MS Word "
В общем виде структуру кода макроса можно представить следующим образом: Sub ИМЯМАКРОСА () " текст комментария Оператор1 Оператор2 ... ОПЕРАТОРN End Sub
Каждый макрос VBA начинается с ключевого слова Sub, за которым следует имя макроса. Строку, содержащую ключевое слово Sub и имя макроса, называют строкой объявления (declaration) макроса. За именем макроса всегда следуют пустые круглые скобки (т.к. макрос является процедурой VBA без параметров). За строкой объявления макроса следуют строки комментариев. Комментарий (comment) - это строка в макросе VBA, которая не содержит инструкций, являющихся частью этого макроса. Каждая строка комментария начинается с символа апострофа ( " ). Комментарии содержат имя макроса и текст, который был введен пользователем в текстовое поле "Описание" ("Description") диалогового окна "Запись макроса" ("Record Macro") в момент записи этого макроса. Сразу за объявлением макроса следует тело макроса (body). Каждая строка в теле макроса состоит из одного или более операторов VBA. Оператор VBA (statement) - это последовательность ключевых слов и других символов, которые вместе составляют одну полную инструкцию для VBA. Макрос VBA состоит из одного или нескольких операторов.
Конец макроса выделяется ключевой строкой End Sub, завершающей тело макроса.
Среда разработки VBA
Visual Basic for Application (VBA) - это система программирования, которая используется как единое средство программирования во всех приложениях Microsoft Office. Всякая система программирования включает в себя, по меньшей мере, три составные части: 1. Язык (или языки) программирования.
2. Среду разработки, т.е. набор инструментов для написания программ, редактирования, отладки и т.п.
3. Библиотеку (или библиотеки) стандартных программ, т.е. набор готовых программ (процедур, функций, объектов и т.д.), которые можно использовать как готовые элементы при построении новых программ.
Для создания офисных приложений в MS Office имеется интегрированная среда разработки (Integrated Development Environment, IDE) с унифицированным интерфейсом. VBA IDE - это набор инструментов разработки программного обеспечения, таких как редактор Visual Basic (Visual Basic Editor, VBE), средства отладки, средства управления проектом и т.д. Вызов VBA IDE из любого приложения выполняется через комбинацию клавиш Alt F11 или меню "Сервис/Макрос/Редактор Visual Basic".
Структура VBE
VBA - это стандартное интерфейсное окно, содержащее меню, панели инструментов, другие окна и элементы, которые применяются при создании проектов VBA. Общий вид окна редактора Visual Basic представлен на рис. 3.
Рисунок 3 Окно редактора Visual Basic
Основными (открывающимися по умолчанию) являются три окна: окно проекта, окно свойств и окно редактирования кода. Краткое описание этих и некоторых других компонентов VBE приведено в таб. 1 Все они доступны через команды, представленные в меню "Вид".
Таблица 1
Назначение компонентов VBE
Наименование окна Описание
Project (Проект) Предназначено для отображения всех открытых проектов, а также их составляющих: модулей, форм и ссылок на другие проекты
Toolbox (Панель элементов) Содержит элементы управления для конструирования форм
USERFORM Используется для создания форм путем размещения на них элементов управления
Code (Программа) Предназначено для просмотра, написания и редактирования программы на языке VBA. Поскольку среда разработки является многооконной, то для каждого модуля проекта можно открыть отдельное окно
Properties (Свойства) Отображает свойства выделенных объектов. В этом окне можно задавать новые значения свойств формы и элементов управления
Object Browser (Просмотр объектов) Отображает классы, свойства, методы, события и константы различных библиотек объектов. Используется для быстрого получения информации об объектах
Immediate (Проверка) Предназначено для быстрого выполнения вводимых в него инструкций. В данном окне также выводятся результаты выполнения вводимых инструкций
Locals (Локальные переменные) Автоматически показывает все переменные данной процедуры
Watches (Контрольные значения) Применяется при отладке программ для просмотра значений выражений
Характеристики компонентов VBE
Окно проекта (Project)
Проект - это совокупность всех программных модулей, связанных с документом Microsoft Office. Окно Project (Проект) предназначено для быстрого получения информации о различных составляющих проекта. Проект может содержать модули следующих видов: · Объекты основного приложения. Проекты VBA выполняются совместно с другими приложениями. Приложение, в котором разрабатывается и выполняется проект VBA, называется основным.
· Модули форм. В VBA имеется возможность создавать пользовательские формы, предназначенные для ввода или вывода данных, а также процедуры обработки событий, возникающие в этих формах.
· Модули кода. Модульность - один из основных принципов парадигмы структурного программирования. Каждый модуль, как правило, содержит подпрограммы, сходные по назначению. Небольшие модули проще отлаживать и использовать повторно. В частности, в VBE имеются средства импорта/экспорта готового кода.
· Модули классов. VBA позволяет создавать и использовать собственные объекты. Описание объектов включается в модули класса. Каждый модуль класса содержит полную информацию об одном типе объекта.
С помощью окна проекта можно добавить или удалить какой-либо объект из проекта. Модули кода добавляются в проект командой "Вставить/Модуль". Формы создаются командой "Вставить/USERFORM", а модули класса командой "Вставить/Модуль класса". Окно проекта можно использовать также для быстрой навигации по формам проекта и программному коду. Для этого необходимо выбрать в контекстном меню соответственно команды "Объект" или "Программа".
Окно свойств (Properties)
Список свойств выделенного объекта выводится в окне Properties (Свойства). Для того чтобы выделить объект, необходимо с помощью окна проекта выбрать форму и перейти в режим конструктора, используя команду "View Object". Свойства объекта можно упорядочить в алфавитном порядке (Alphabetic (По алфавиту)) или по категориям (Categorized (По категориям)), выбрав соответствующую вкладку. Предусмотрена также возможность получения быстрой справки по какому-либо свойству объекта. Для этого достаточно установить курсор на нужное свойство и нажать клавишу F1.
Окно просмотра объектов(Object Browser)
Окно Object Browser (Просмотр объектов) предназначено для просмотра объектов, доступных при создании программы. Точнее, в этом окне отображаются не сами объекты, а структура соответствующего класса объектов. Окно просмотра объектов может использоваться для поиска метода или свойства объекта.
Окно Code (Окно редактирования кода)
Окно Code (Программа) представляет собой текстовый редактор, предназначенный для написания и редактирования кода процедур приложения. Это окно появляется на экране, например, при создании нового модуля. Код внутри модуля организован в виде отдельных разделов для каждого объекта, программируемого в модуле. Переключение между разделами выполняется путем выбора значений из списка "Object" ("Объект"), который находится в левом верхнем углу окна. Каждый раздел может содержать несколько процедур, которые можно выбрать из списка "Procedure" ("Процедура") в правом верхнем углу. Интеллектуальные возможности редактора кода: 1. При написании кода пользователю предлагается список компонентов, логически завершающих вводимую пользователем инструкцию.
2. На экране автоматически отображаются сведения о процедурах, функциях, свойствах и методах после набора их имени.
3. Автоматически проверяется синтаксис набранной строки кода сразу после нажатия клавиши Enter. В результате проверки выполняется выделение определенных фрагментов текста: o красным цветом - синтаксические ошибки;
o синим цветом - зарезервированные ключевые слова;
o зеленым цветом - комментарии.
4. Если курсор расположить на ключевом слове VBA, имени процедуры, функции, свойства или метода и нажать клавишу F1, то на экране появится окно со справочной информацией об этой функции.
Окно редактирования форм (USERFORM)
Для создания диалоговых окон, разрабатываемых приложений VBA, используются формы. Редактор форм является одним из основных средств визуального программирования. При добавлении формы в проект (команда "Insert" - "USERFORM" ("Вставить" - "USERFORM")) на экран выводится незаполненная форма с панелью инструментов Toolbox (Панель элементов). Используя панель инструментов Toolbox (Панель элементов) из незаполненной формы конструируется требуемое для приложения диалоговое окно. Размеры формы и размещаемых на ней элементов управления можно изменять. Также окно редактирования форм поддерживает операции буфера обмена. Кроме того, команды меню "Format" ("Формат") автоматизируют и облегчают процесс выравнивания элементов управления как по их взаимному местоположению, так и по размерам.
Окна отладочной информации
Окно Immediate (Проверка) позволяет ввести инструкцию и выполнить ее. При этом инструкция должна быть записана в одну строку, директивы которой будут выполнены после нажатия клавиши Enter. Данное окно можно использовать для быстрой проверки действий, выполняемой той или иной инструкцией. Это позволяет не запускать всю процедуру, что удобно при отладке программ. Окно Locals (Локальные переменные) автоматически отображает все объявленные переменные текущей процедуры и их значения.
Окно Watches (Контрольные значения) применяется при отладке программ для просмотра значений выражений.