- •Л.Н. Лядова, н.В. Фролова, в.В. Ланин, е.Б. Замятина, м.А. Плаксин, б.А. Ермолаев
- •Часть 2. Основы офисного программирования
- •Оглавление
- •Глава 6. Использование Win32 api 113
- •Глава 7. Использование шаблонов и надстроек 118
- •Глава 8. Разработка приложений с помощью Excel 122
- •Глава 9. Разработка приложений с помощью Word 223
- •Глава 10. Использование Automation при интегрировании компонентов Microsoft Office 256
- •Глава 11. Организация доступа к внешним данным 279
- •Глава 12. Общие рекомендации по разработке приложений 297
- •Глава 13. Разработка справочной системы 298
- •Глава 14. Дополнительные рекомендации 301
- •Пояснительная записка
- •Уровень предварительной подготовки слушателей
- •Образовательные цели и задачи
- •Знания и навыки, получаемые в ходе изучения курса
- •Содержание занятий
- •Вопросы для самостоятельного изучения
- •Содержание лабораторных работ
- •Итоговые работы
- •Введение
- •Глава 1.Общая характеристика возможностей vba
- •Глава 2.Основные принципы разработки приложений
- •Глава 3.Основные правила разработки интерфейса
- •Глава 4.Visual Basic для приложений
- •Глава 5.Введение в язык и редактор Visual Basic
- •5.1.Окно Редактора Visual Basic
- •5.2.Основные правила записи программ на vba
- •5.2.1. Описания в программах на языке vba
- •5.2.2. Структуризация программ vba и правила записи кода процедур
- •5.2.3. Использование параметров
- •5.2.4. Типы данных vba
- •5.2.5. Описания переменных
- •5.2.6. Объекты в программах на vba и объектные переменные
- •5.2.7. Создание объектов пользователя
- •5.2.8. Описание и использование констант
- •5.2.9. Массивы в vba
- •5.2.10. Описание типов данных пользователя
- •5.2.11. Запись выражений на vba
- •5.2.12. Рекурсивные вычисления
- •5.2.13. Процедуры-подпрограммы
- •5.2.14. Процедуры-функции
- •5.2.15. Процедуры-свойства
- •5.2.16. Создание процедур
- •5.2.17. Управляющие структуры vba и события
- •5.3.Запуск программ
- •5.4.Отладка программ
- •5.5.Обработка ошибок
- •5.6.Преобразования типов
- •5.7.Функции для работы с датами и временем
- •5.8.Управление файлами
- •5.9.Функции проверки
- •5.10.Функции работы со строками
- •5.11.Взаимодействие с пользователем
- •5.12.Пользовательские формы и диалоговые окна
- •5.13.Создание пользовательских меню и панелей инструментов
- •5.14.Разработка контекстного меню
- •5.15.Открытие проектов, экспорт и импорт
- •Глава 6.Использование Win32 api
- •Глава 7.Использование шаблонов и надстроек
- •Глава 8.Разработка приложений с помощью Excel
- •8.1.Иерархия объектов Excel
- •8.2.Обзор основных объектов Excel
- •8.2.1. Объект Application
- •8.2.2. Объект Workbook
- •8.2.3. Объект WorkSheet
- •8.2.4. Объект Range
- •8.2.5. Графические объекты
- •8.2.6. Элементы управления и обработка событий
- •8.3.Представление данных и вычисления в таблицах Excel
- •8.3.1. Ссылки на ячейки рабочих листов Excel
- •8.3.2. Работа с формулами
- •8.3.3. Использование функций
- •8.3.4. Создание пользовательских функций рабочего листа
- •8.3.5. Массивы Excel
- •8.3.6. Определение связей между таблицами
- •8.3.7. Консолидация данных
- •8.3.8. Форматирование данных в таблицах
- •8.4.Анализ данных и подведение итогов
- •8.4.1. Создание сводных таблиц
- •8.4.2. Подведение промежуточных итогов
- •8.4.3. Определение частичных сумм
- •8.4.4. Создание диаграмм
- •8.4.5. Работа со структурой данных
- •8.5.Подбор параметров и поиск решения
- •8.6.Использование сценариев
- •8.7.Поиск и отбор данных в таблицах Excel
- •8.7.1. Использование автофильтра
- •8.7.2. Работа с расширенным фильтром
- •8.7.3. Поиск данных по подписям строк и столбцов
- •8.8.Упорядочение данных в таблицах
- •8.9.Защита приложений Excel
- •8.9.1. Защита от ошибок при вводе данных
- •8.9.2. Защита данных от несанкционированного доступа
- •Глава 9.Разработка приложений с помощью Word
- •9.1.Модель объектов Word
- •9.1.1. Объект Document
- •9.1.2. Другие дочерние объекты приложения Word
- •9.2.Работа с полями
- •9.3.Переменные документа
- •9.4.Использование формул в документах Word
- •9.5.Использование элементов управления в документах Word
- •9.6.Создание шаблонов документов на основе таблиц
- •9.7.Защита документов Word и кода
- •Глава 10.Использование Automation при интегрировании компонентов Microsoft Office
- •10.1.Технология ActiveX
- •10.2.Компонентная модель объектов, внедрение и связывание
- •10.3.Создание объектов Automation
- •10.4.Получение доступа к объекту
- •10.5.Пример вычислений в Access с помощью Excel
- •10.6.Управление связанными и внедренными объектами с помощью программного кода
- •Глава 11.Организация доступа к внешним данным
- •11.1.Доступ к данным из клиентских приложений
- •11.2.Интерфейс odbc
- •11.3.Использование dao для доступа к данным
- •11.3.1. Модель объектов dao
- •11.3.2. Создание рабочей области и открытие источника данных
- •11.3.3. Исследование структуры таблиц бд
- •11.3.4. Операции над данными
- •11.4.Интеграция данных и работа в сети
- •11.4.1. Доступ к данным Excel из субд Access
- •11.5.Выбор метода доступа к данным
- •Глава 12.Общие рекомендации по разработке приложений
- •Глава 13.Разработка справочной системы
- •13.1.Использование всплывающих подсказок
- •13.2.Контекстная справка «Что это такое?»
- •13.3.Подготовка файла справки
- •Глава 14.Дополнительные рекомендации Установка приложения
- •14.1.Повышение эффективности работы приложения
- •Приложение 1. Система автоматизации подготовки документов на основе пакета Microsoft Office
- •Требования к системе Office case
- •Интеллектуальность документа
- •Однократный ввод данных и их совместное использование
- •Дружественный интерфейс – «ориентация на человека»
- •Мобильность
- •Независимость от версии Microsoft Office
- •Поддержка языка разметки документов xml
- •Общий сценарий использования
- •Структура Office case
- •Структура скрытого раздела документа
- •В. Таблица ограничений
- •Подсистемы программного проекта документа Менеджер закладок
- •Менеджер классификаторов
- •Подсистема управления интерфейсом пользователя
- •Подсистема контроля данных
- •Подсистема информационного обмена
- •Дизайнер системы документов
- •Редактор классификаторов
- •Редактор правил
- •Редактор закладок
- •Редактор блоков данных
- •Пример применения Office case Постановка задачи
- •Реализация Документы «Подсистемы автоматизации подготовки отчетов»
- •Требования к квалификации пользователей
- •Установка приложения и подготовка к работе
- •Интерфейс первичных документов
- •Интерфейс сводных документов
- •Приложение 2. Автоматизированное рабочее место «Оператор автозаправочной станции»
- •Разработка структуры рабочей книги
- •Настройка пользовательского интерфейса
- •Разработка экранных форм
- •Приложение 3. Автоматизация заполнения бланка с помощью программы текстового процессора Word Постановка задачи
- •Разработка документа
- •Разработка экранной формы
- •Список литературы
Приложение 1. Система автоматизации подготовки документов на основе пакета Microsoft Office
Для всех крупных иерархически организованных структур (министерств, ведомств, крупных фирм) актуальна проблема получения информации и отчетности от подчиненных или подведомственных им предприятий.
В настоящий момент эта задача очень часто решается в основном вручную, путем заполнения соответствующих форм отчетности с последующей передачей их на вышестоящий уровень для обработки. При использовании традиционных методов сбора отчетности технология работы может быть описана следующим образом. Сначала линейные подразделения формируют формы отчетности с использованием каких-либо офисных приложения, например, Microsoft Excel или Microsoft Word, распечатывают их и отправляют вышестоящему подразделению по факсу или с курьером. Соответствующие отделы головного подразделения получают эти формы, повторно вводят их в компьютер, рассчитывают сводные показатели, и только после этого информация может быть доступна руководству для принятия управляющих решений. Ситуация усугубляется, если структура многоуровневая. В такой структуре описанный выше цикл может повторяться несколько раз.
Очевидно, все вышеперечисленные действия требуют больших затрат и рутинной работы. Сроки прохождения информации по такой схеме составляют значительное время, в зависимости от глубины уровней иерархии и сложности отчетов, а также территориальной распределенности подотчетных предприятий. Если при заполнении форм возникают ошибки (особенно при заполнении полностью в ручном режиме, без всяких механизмов контроля), цикл может повторяться, либо информация поступает в искаженном виде.
Эффективное решение данной проблемы возможно с применением корпоративных многоуровневых систем. Однако реально внедрение корпоративных систем, которые позволяли бы централизовать подобную информацию, крайне сложное дело в многоуровневой системе и может растянуться на годы. Для создания и функционирования этих корпоративных многоуровневых систем используются мощные и дорогостоящие инструментальные средства. Инструменты, разработанные для крупных предприятий, не подходят для небольших предприятий ввиду сложности их эксплуатации и высокой стоимости. На сегодняшний день на рынке программного обеспечения практически нет инструментальных средств, автоматизирующих процесс документооборота на небольшом предприятии.
В сложившейся ситуации необходимо иметь достаточно простую систему, которая позволила бы быстро и эффективно решать конкретные задачи. Эта система должна быть дешевой в эксплуатации и проста в развертывании.
Без использования автоматизированных систем после подготовки первичных документов, для извлечения из них нужной информации, ее обработки и анализа приходится ставить задачу перед программистами либо производить все манипуляции вручную. Если все же работа с документами автоматизируется, то обычно такие системы создаются программистами «с нуля», программный код ориентирован на данные конкретного документа и зачастую повторное его использование невозможно. Практика показывает, что большая часть из разрабатываемых программ автоматизации документов имеет одинаковую функциональность с некоторой поправкой на специфику предметной области. Данный факт приводит к идее создания универсального набора программных средств, автоматизирующего базовые операции с документами без вмешательства программиста.
Очевидно, что информационные системы небольших предприятий могут быть построены на базе пакета офисных программ. Современные офисные пакеты имеют развитые инструменты разработки, которые позволяют реализовать программные проекты практически любой степени сложности, использовать возможности самого пакета и функции операционной системы. Если за основу взять популярный офисный пакет, то от пользователей на стороне клиента не потребуется даже установка специального программного обеспечения. Например, за основу создания системы можно взять пакет офисных программ Microsoft Office, так как его в своей повседневной работе над различными документами применяют большое количество пользователей, в том числе и корпоративных. Данный пакет предлагает широкие возможности автоматизации работы над документом и является практически идеальной платформой для создания системы документооборота небольшого предприятия.
Одним из возможных путей решения описанной выше проблемы может быть разработка набора инструментов – CASE-средства, позволяющего автоматизировать создание систем документов, при применении которого вмешательство программиста в программный проект документа не потребуется.
Разрабатываемый пакет инструментальных средств оперативной разработки офисных приложений получил название Office CASE. Office CASE – это средство, позволяющее автоматизировать подготовку отчетов и их обработку в многоуровневых иерархически организованных информационных системах на основе использования средств стандартного выпуска пакета офисных программ Microsoft Office. Основная задача пакета – автоматизация подготовки данных и формирования на их основе первичных и сводных отчетов.
