Повышение эффективности работы с оперативными документами

Содержание 

 

Введение

 

    В России, вслед за ведущими капиталистическими странами, началась революция в делопроизводстве. Ускоряется внедрение информационных технологий, электронные документы начинают постепенно вытеснять документы на традиционных носителях. Существенно изменяется нормативно-правовая база делопроизводства. В государственном секторе реализуется программа создания «электронного правительства», которая также приводит к усилению роли электронных документов. Исходя из контрольных значений показателей развития информационного общества в Российской Федерации на период до 2015 г., доля электронного документооборота между органами государственной власти в общем объеме документооборота должна будет составить 70 %.

    Основные  принципы современного управления документами  отражены в стандарте ISO 15489:2001 «Информация  и документация. Управление документами». Данный стандарт переведен на русский  язык и принят в качестве национального стандарта ГОСТ Р ИСО 15489-1-2007 «Система стандартов по информации, библиотечному и издательскому делу. Управление документами. Общие требования».

 

1 Повышение эффективности работы с оперативными документами

    Для повышения эффективности работы с приложениями Microsoft Office требуется автоматизировать создание оперативных  документов определенного типа (писем, баз данных, отчетов и т.д.)

  1.1 Общие сведения об автоматизации работы с приложениями Microsoft Office

 

    Многие  разработчики в процессе работы над своими проектами (неважно, с помощью какого средства разработки ( Delphi, C++Builder, Visual Basic), применяют сервисы, предоставляемые Microsoft Office, например построение сводных таблиц и диаграмм с помощью Microsoft Excel, генерацию и печать документов с помощью Microsoft Word и т.д. Нередко пользователи, привыкшие использовать приложения Microsoft Office в повседневной работе, сами настаивают на применении в приложениях таких сервисов, либо просто на сохранении отчетов и других документов в одном из форматов Microsoft Office. В этих целях компанией Microsoft было создана возможность использования любого приложения Microsoft автоматически, то есть либо из VBA-программы, либо из приложения, созданного с помощью одного из средств разработки. Иными словами, приложения Microsoft Office являются программируемыми.

    Программируемость в общем случае означает возможность  управления данным приложением с  помощью макроязыков либо с помощью  других приложений. Все компоненты Microsoft Office поддерживают один и тот же макроязык: Visual Basic for Applications (VBA), позволяющий создавать приложения непосредственно внутри документов Office (это называется: решения на базе Microsoft Office).

    Управление  же компонентами Office из других приложений осуществляется с помощью автоматизации (Automation, ранее - OLE Automation. Все приложения Microsoft Office являются серверами автоматизации (или COM-серверами). 

    Для создания таких приложений пригодны любые средства разработки, позволяющие  создавать контроллеры автоматизации (COM-клиенты). Наиболее часто для этой цели используется Visual Basic, но это могут быть и Delphi, и C++Builder, и Visual C++. Однако прежде чем обсуждать возможности тех или иных средств разработки, следует разобраться, что такое автоматизация. 

 

2 Макросы

 

    Если  требуется периодическое выполнение задачи в Microsoft Excel, можно автоматизировать задачу с помощью макроса. Макрос - это последовательность команд и  функций, хранящаяся в модуле Visual Basic. Ее можно выполнять всякий раз, когда  необходимо выполнить данную задачу. Например, если в ячейки часто вводятся длинные текстовые строки, можно создать макрос для форматирования этих ячеек для охватывания ими текста.

2.1Запись макросов

 

    При записи макроса Microsoft Excel сохраняет  информацию о каждом шаге выполнения последовательности команд. Последующий запуск макроса вызывает повторение ("воспроизведение") команд. Если при записи макроса была допущена ошибка, сделанные исправления также будут записаны. Visual Basic хранит каждый записанный макрос в отдельном модуле, присоединенном к книге. Упрощение запуска макроса. Макрос можно запустить, выбрав его из списка в диалоговом окне Макрос. Чтобы макрос запускался после каждого нажатия определенной кнопки или сочетания клавиш, можно назначить макросу кнопку на панели инструментов, сочетание клавиш или графический объект на листе. Управление макросами. После записи макроса код программы можно посмотреть в редакторе Visual Basic для исправления ошибок и внесения требуемых изменений в макрос. Например, если макрос, переносящий текст по словам, должен также выделять текст полужирным шрифтом, можно записать другой макрос, выделяющий шрифт полужирным шрифтом, и скопировать инструкции из этого нового макроса в старый макрос, переносящий текст по словам. Освоение объектной модели автоматизируемого сервера можно начать с записи необходимой последовательности действий в виде макроса с помощью VBА. Создать макрос можно, выбрав из меню приложения Microsoft Office пункт Сервис| Макрос |Начать запись.

    Просмотр  полученного макроса в редакторе кода VBA обычно позволяет понять, как должен выглядеть код, реализующий эту последовательность действий.

    Редактор Visual Basic разработан для упрощения  написания и редактирования программ начинающими пользователями и предоставляет обширную оперативную справку. Для внесения простейших изменений в макросы нет необходимости изучать программирование на языке Visual Basic. Редактор Visual Basic позволяет редактировать макросы, копировать макросы из одного модуля в другой, копировать макросы из других книг, переименовывать модули, хранящие макросы и переименовывать макросы. Безопасность макросов. Microsoft Excel обеспечивает защиту от вирусов, которые могут передаваться макросами. Если макросы используются совместно с другими пользователями, макросы могут быть снабжены цифровой подписью, так что пользователи могут проверить надежность источника макросов. Всякий раз при открытии книги, содержащей макросы, можно проверить источник макросов, прежде чем разрешить их.

 

3 VBA и средства разработки контроллеров автоматизации

 

    Примеры простейших контроллеров автоматизации (как правило, для Microsoft Word или Microsoft Excel), дающие представление о том, как вызываются методы сервера, обычно можно найти в комплекте поставки большинства современных средств разработки.

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

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

    В объектном программировании есть понятие  класса. Это некий проект, на основе которого создаётся конкретный объект. Класс определяет назначение объекта, его свойства и те действия, которые  могут быть выполнены над этим проектом. Нам неинтересен сам по себе объект, но важно то, какие действия можно с ним совершить и какими свойствами он обладает. В системе хранится программное описание каждого используемого класса, на основании которого, при необходимости, создаются экземпляры класса. Например: описан класс «кнопки», которую необходимо отражать в окнах приложения. Каждая отдельная кнопка- экземпляр объекта этого класса и создаётся на основании этого описания, но отличается от других некоторыми свойствами (размер, цвет, положение на экране и т. п.). Кроме методов и свойств есть понятие события. Это некоторое действие, которое можно выполнять с объектом и на которое надо программировать отклик (ответную реакцию системы).

 

3.1 Общие  принципы построения VBA-программы

 

    Следует заметить, что программа не является самостоятельным структурным элементом в иерархии объектов языка VBA, и поэтому редактор VBA распознаёт по именам не программы, а процедуры, модули и проекты. Любая VBA-программа обязательно содержит хотя бы одну процедуру - по той простой причине, что компилятор языка VBA может выполнять только операторы, помещённые в процедуру. Однако выполняемая программа-процедура может, в свою очередь, обращаться к одной или нескольким другим процедурам, помещённым в один или несколько модулей, входящих в состав одного или проектов. Другими словами, правильно будет сказать, что в VBA строки программного кода организованы в процедуры, которые размещаются в модулях, а модули размещаются в проектах. Отсюда можно сделать вывод, что программный код VBA состоит из следующих "строительных блоков".

    Оператор - это наименьшая единица VBA - кода. Он предназначен для определения переменной, установки параметров или выполнения какого-либо действия в программе.

    Процедура - это отдельная единица программного кода VBA, которую можно вызвать по имени для выполнения и которая может выполнять самостоятельно. Любая процедура содержит один или несколько операторов.

    Модуль - это именованная единица, состоящая из одной или нескольких процедур и раздела объявлений, в котором объявляются переменные, константы и пользовательские типы данных, а также устанавливаются параметры компилятора.

    Проект - включает в себя все модули, формы и связанные с приложением объекты, относящиеся к конкретному документу, причём проект сохраняется вместе с самим этим документом.

3.2 Редактор VBA

 

    Для входа в редактор имеется два  пути: горячие клавишы Alt + F11 и через меню Сервис - Макросы - Редактор Visual Basic. Также при изменении макроса в меню Вы автоматически окажетесь в редакторе. Меню редактора:

    o File - команды сохранения изменений  в проекте и вывода на экран  и печать исходного кода макросов.

    o Edit - команды управления исходным  кодом в окне Code, а также объектами  в формах.

    o View - команды, позволяющие выводить  или убирать с экрана различные  окна самого редактора VBA.

    o Insert - команды вставки в проект  различных объектов: процедур, модулей, форм, классов и пр.

    o Format - команды используемые при  создании пользовательских диалоговых  окон. Они позволяют выравнивать  объекты в форме по отношению  друг к другу, настраивать размеры  и внешний вид элементов управления  и другие операции.

    o Debug - команды тестирования и отладки кода. Позволяют запускать код с любой точки, отслеживать ход выполнения по шагам, видеть значения, прерывать программу в нужном месте.

    o Run - команды запуска программного  кода на выполнение, прерывания, возобновление работы, а также возврата прерванной программы в исходное состояние.

    o Tools - команды, позволяющие выбрать  макрос для выполнения или  получения доступа к внешним  библиотекам макросов. Доступ к  диалоговому окну Option (параметры)  редактора и окну свойств VBA.

    o Add-Ins - одна команда Add-in Manager для  вывода диалогового окна в  котором можно загружать, выгружать,  регистрировать или определять  поведение программ - дополнений (надстроек).

3.3 Объектные модели Microsoft Office

 

    Как было сказано выше, приложения Microsoft Office предоставляют контроллерам автоматизации доступ к своей функциональности с помощью своей объектной модели, представляющей собой иерархию объектов. Объекты могут предоставлять доступ к другим объектам посредством коллекций.

    В объектных моделях всех приложений Microsoft Office всегда имеется самый главный объект, доступный приложению-контроллеру и представляющий само автоматизируемое приложение. Для всех приложений Microsoft Office он называется Application, и многие его свойства и методы для всех этих приложений также одинаковы. Наиболее часто используются:

    Свойство Visible (доступное для объекта Application всех приложений Microsoft Office) позволяет приложению появиться на экране и в панели задач; оно принимает значения True (пользовательский интерфейс приложения доступен) или False (пользовательский интерфейс приложения недоступен; это значение устанавливается по умолчанию). Если вам нужно сделать что-то с документом Office в фоновом режиме, не информируя об этом пользователя, можно не обращаться к этому свойству- в этом случае приложение можно будет найти только в списке процессов с помощью приложения Task Manager. Метод Quit закрывает приложение Office. В зависимости от того, какое приложение Office автоматизируется, он может иметь параметры или не иметь таковых.

     

3.4 Использование Windows API

 

    VBA может заимствовать методы из  других файлов, которые не имеют  ничего общего с Excel или VBA- например, файлы DLL (Dynamic Link Library- динамически  присоединяемая библиотека), используемые Windows и другими программами. В результате в VBA появляется возможность выполнять операции, которые без заимствованных методов находятся за пределами возможностей языка.

    Windows API (Application Programming Interface- прикладной программный  интерфейс) представляет собой набор функций, доступных программистам в среде Windows. При вызове функции Windows из VBA вы обращаетесь к Windows API. Многие ресурсы Windows, используемые программистами Windows, можно получить из файлов DLL, в которых хранятся программы и функции, подсоединяемые в процессе выполнения программы, а не во время компиляции. В Excel, например, тоже есть несколько DLL. Код многих из них можно было скомпилировать непосредственно в исполняемый файл программы- excel.exe, но разработчики решили сохранить его в формате DLL, чтобы загружать только при необходимости. Такой подход делает главный исполняемый файл Excel меньше. Кроме того, более эффективно используется память, так как библиотека загружается только при необходимости. Файлы DLL также применяются для совместного использования кода.

    Например, во многих программах Windows имеются диалоговые окна для открытия и сохранения файлов. В Windows есть DLL, в которой хранится код создания нескольких стандартных  диалоговых окон. Программисты, таким  образом, могут вызвать необходимую DLL, а не писать собственные процедуры. Если вы программируете на языке С, то умеете создавать собственные DLL и использовать их в VBA. В языке Visual Basic от Microsoft тоже есть возможность создавать файлы DLL, которые можно вызывать из Excel.

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

    Разработчики  таблиц несут ответственность за выполнение требований:

    o Определение потребностей пользователя.

    o Планирование приложения, которое  соответствует этим условиям.

    o Разработку наиболее подходящего интерфейса пользователя.

    o Создание электронной таблицы,  формул, макросов и пользовательского  интерфейса.

    o Тестирование приложения в разных  условиях.

    o Изменение приложение с целью  повышения его надежности и  отказоустойчивости (часто по результатам тестирования).

    o Эстетическую привлекательность  и наглядность приложения.

    o Документирование усилий, потраченных  на разработку.

    o Размещение приложения в компьютере  пользователя.

    o Обновление приложения в случае  необходимости.

    Итак, на начальном этапе планирования проекта приходится обдумать следующие вопросы.

    o Файловая структура. 

    Как устроен документ: одна рабочая книгу  с множеством листов, несколько однолистных  рабочих, книг или файл шаблона.

    o Структура данных. Обязательно необходимо  учесть структуру данных, которые будут использоваться в приложении. В том числе необходимо решить, использовать файлы внешних баз данных или хранить всю информацию в рабочих листах.

    o Формулы или VBA.

    o Надстройка или файл XLS. В некоторых  случаях лучшим вариантом конечного продукта является надстройка, хотя не исключено применение надстройки вместе со стандартной рабочей книгой.

    o Версия Excel. Где будет запускаться  ваше Excel-приложение: в Excel 2002, а может,  в Excel 2000 или Excel 97? Ну а как  насчет Excel 95 и Excel 5? Будет ли оно работать на платформе Macintosh? Это очень важные вопросы, поскольку в каждую новую версию Excel добавляются такие возможности, которые отсутствуют в предыдущих.

    o Как обрабатывать ошибки. Для  приложений немаловажным вопросом  является обработка ошибок. Определите, как ваше приложение будет "отлавливать" ошибки, и чтопотом оно будет с ними делать. Например, если ваше приложение применяет форматирование к активному рабочему листу, то необходимо предусмотреть случай, когда активным будет лист диаграмм.

    o Использование специальных возможностей. Если в вашем приложении будет  суммироваться большое количество  данных, то подумайте над использованием  такого средства Excel как сводные  таблицы. Вам также потребуется  такая возможность Excel, как проверка данных, чтобы тестировать вводимые данные на правильность.

    o Вопросы производительности. Решить  вопрос увеличения производительности  и эффективности вашего приложения  следует еще на стадии проектирования, а не тогда, когда приложение  закончено и от пользователей поступают жалобы.

    o Уровень безопасности. Как вы, возможно, знаете, в Excel предусмотрено несколько  вариантов защиты, которые призваны  предотвратить доступ к определенным  элементам рабочей книги.

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

    Теперь  несколько слов о реальном положении  вещей. Excel - программа изменчивая. Период между ее обновлениями составляет от 18 до 24 месяцев. Это означает, что  в вашем распоряжении менее двух лет, чтобы справиться с текущими инновациями, а иначе вам придется бороться не только с ними, но и с другими нововведениями.

    Программа Excel 5, которая привнесла в нашу жизнь VBA, стала для разработчиков Excel"изменением парадигмы" управления данными. Ранее тысячи людей зарабатывали себе на жизнь, создавая приложения Excel, которые, в основном, писались на макроязыке XLM, представленном в Excel 2, 3 и 4. Начиная с Excel 5, стали доступны десятки новых инструментов, активно используемых разработчиками. Появление программы Excel 97 заставило разработчиков столкнуться с еще одной "сменой парадигмы". В этой версии появился новый формат файлов, редактор языка Visual Basic, a также пользовательские формы, которые пришли на замену диалоговым листам. Excel 2000 и Excel 2002 также обеспечили дополнительные возможности, но эти изменения уже не были столь радикальными, как изменения в предыдущих версиях. После Excel 2002 мы, вероятно, будем свидетелями еще одной значительной "смены парадигмы". В настоящее время компания Microsoft работает над, совершенствованием технологии .NET, и похоже на то, что пакет Office станет частью этой технологии. Как утверждают в кругах разработчиков, на смену VBA придет VSA (Visual Studio for Applications).

 

Заключение

 

    Язык VBA изучать нетрудно, но определенно требуется время, чтобы почувствовать себя с ним комфортно, ну а для совершенного овладения этим языком требуется немало времени и самостоятельной практики, чтения литературы. Создав приложение, необходимо его протестировать. Это один из самых важных этапов. Нередко бывает так, что на тестирование и отладку приложения уходит столько же времени сколько тратится на создание его исходного варианта. В конце концов, пишете вы процедуру VBA или создаете формулы рабочего листа, вам все равно захочется убедиться, что приложение работает именно так, как и предполагалось.

    Несколько примеров, что мы можем сделать  с помощью VBA:

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

    Нажатием  одной кнопки распечатываем все  коды товаров, поступление которых  динамично меняется в соответствующей  таблице или также поступаем  с адресами на конвертах.

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

Повышение эффективности работы с оперативными документами