- •Л.Н. Лядова, н.В. Фролова, в.В. Ланин, е.Б. Замятина, м.А. Плаксин, б.А. Ермолаев
- •Часть 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 Постановка задачи
- •Разработка документа
- •Разработка экранной формы
- •Список литературы
Глава 4.Visual Basic для приложений
VBA является языком программирования Microsoft Office 97. Имеется языковое ядро Visual Basic, к которому каждый продукт добавляет свою специфическую функциональность. Специфические для приложений библиотеки объектов являются важнейшей составной частью VBA (библиотека VBA VBA332.DLL содержит 182 функции, свойства и метода и 254 встроенных константы, а библиотека объектов Excel EXCEL8.OLB, обеспечивающая доступ ко всем функциям Excel, примерно в 16 раз больше). Таким образом, разработчики должны быть универсалами, которые знают не только язык программирования и базы данных, но и владеют финансовым анализом с помощью электронных таблиц, настольными издательскими системами, методами подготовки документов и презентаций.
Версии Word, Excel и PowerPoint, входящие в состав Microsoft Office 97, используют редактор Visual Basic (Visual Basic Editor – VBE) и VBA версии 5. В Access используется другая версия – VBA version 2. Но эти версии достаточно близки.
Общий язык программирования обеспечивает сквозную программируемость для всех базовых продуктов. Механизм Automation (OLE Automation) позволяет разработчикам относительно просто управлять работой сервера и клиентского приложения и собирать приложения для бизнеса из различных компонентов продуктов Microsoft Office.
Все приложения Microsoft Office включают средства записи макросов (команда Сервис Макрос Начать запись…), но для внесения в записанные макросы изменений, их усовершенствования (например, организации диалога, повторений или ветвлений при исполнении последовательности команд макроса), создания пользовательских функций и т.п. необходимы дополнительные средства. Для написания и модификации кода, разработки пользовательских форм используется отдельное приложение – Редактор Visual Basic.
Глава 5.Введение в язык и редактор Visual Basic
На начальном этапе разработки приложения выбирается основное приложение, являющееся базовым для создания нового проекта. В качестве основной выбирается программа, в которой можно выполнить большую часть требуемых операций. Данная программа будет использоваться для запуска проекта. Для создания проекта используется редактор VBA.
Для вызова редактора есть несколько способов:
Выполнение команды Макрос Редактор Visual Basic в меню Сервис. При этом осуществляется «первый» вызов редактора.
Запуск редактора щелчком по кнопке Редактор Visual Basic на панели инструментов «Visual Basic».
Для редактирования текста ранее записанного макроса нужно выполнить команду Макрос Макросы… в меню Сервис, выбрать макрос из списка и щелкнуть кнопку Изменить.
5.1.Окно Редактора Visual Basic
При запуске редактора в основном его окне появляется три окна: окно проекта, окно свойств и окно программы (рис. 1).
Окно проекта, расположенное вверху слева, позволяет управлять различными элементами проекта VBA, в том числе блоками кода и диалоговыми окнами. В этом окне отображаются несколько папок. Первая содержит объекты, специфичные для приложения Office, из которого запущен редактор (например, Microsoft Excel или Microsoft Word). Вторая содержит пользовательские диалоговые окна и формы (она называется «Формы» или «UserForms»). Третья папка содержит пользовательские процедуры, сгруппированные в модули (она так и называется «Модули» или «Modules»). Последние две папки появляются, если созданы модули (например, был записан макрос) или формы. Формы и модули могут быть созданы с помощью соответствующих команд меню Вставка. Папка «Ссылки» содержит имеющиеся в документе ссылки (например, на шаблон).
Если это окно отсутствует, его можно открыть с помощью команды меню Вид.
В окне свойств, расположенном слева внизу, отображаются все характеристики объектов – элементов проекта VBA. Если это окно отсутствует, его также можно открыть с помощью команды меню Вид. Для просмотра и изменения свойств объекта его нужно выделить в окне проекта. После этого в окне свойств будут показаны его свойства, их можно просмотреть и изменить, выбрав из списков или введя с клавиатуры нужные значения.
Справа расположено окно программы (окно редактора кода, окно модуля). Это окно используется при написании любой программы на VBA. При реализации проекта создаваемые подпрограммы можно сохранить отдельно, сгруппировав их по назначению и связям в нескольких модулях. Для создания нового модуля нужно выделить в окне проекта проект, в который требуется добавить модуль; в меню Вставка выбрать строку Модуль (появится пустое окно модуля); в окне свойств задать имя созданного модуля. Окно существующего модуля можно открыть через меню Вид. Команда Программа доступна в нем, если в окне проекта выделен модуль.
Модуль состоит из описаний (инструкции, используемые для описания переменных, констант, типов данных, ссылок на внешние функции, хранящиеся в библиотеках динамической компоновки) и кода процедур приложения (процедура представляет собой поименованный набор инструкций). Инструкции – это единицы кода, представляющие операции, описания или области определения.
Окно программы имеет два режима просмотра: представление полного модуля и представление процедуры. Переключение режимов осуществляется с помощью кнопок в левом нижнем углу окна программы. В режиме представления процедуры в каждый момент времени в окне отображается только одна процедура. Для ее выбора можно воспользоваться раскрывающимися списками, которые находятся в верхней части окна программы: в левом списке перечисляются все объекты, содержащие процедуры, а в правом – процедуры выделенного объекта. В режиме просмотра полного модуля в окне можно пролистать все процедуры и функции, описанные в модуле.
Вместо окна программы может быть открыто окно просмотра объектов или окно редактора пользовательских форм (например, при работе с пользовательской формой можно в режиме «Объект» увидеть форму с размещенными на ней объектами-элементами управления или в режиме «Программа» просмотреть и отредактировать код, соответствующий выделенному объекту). Переключение режимов выполняется с помощью кнопок, расположенных в верхней части окна проекта, или с помощью команд меню Вид. Редактор VBA дает возможность открыть несколько окон для редактирования кода нескольких модулей. Между окнами можно переключаться с помощью команд меню Окно.
По мере ввода текста в окне программы Редактор Visual Basic отображает подсказки (синтаксис свойств, методов, операторов и функций по мере их ввода). В некоторых случаях предлагается выбор из списка значений, которые можно ввести. Включение и выключение такого режима выполняется при настройке среды пользователя через команду Сервис Параметры. На вкладке Редактор можно установить флажки, управляющие видом окна и параметрами программирования.
При работе с VBA могут быть открыты также окно отладки, окно локальных переменных и окно контрольных значений, используемые при отладке. Переключаться между окнами можно с помощью мыши или через команды меню Окно.
Окно программы редактора может выглядеть иначе, так как описанные выше окна могут быть перемещены на другие места или закрыты, их размеры могут быть изменены. Каждый разработчик может настроить их «под себя».
При редактировании текста программы можно получать подсказки о назначении и использовании конкретных процедур, встроенных в VBA, констант, переменных. Для этого нужно выделить нужное имя в тексте программы и нажать клавишу F1. На экране откроется соответствующий раздел справочной системы.
Чтобы закрыть Редактор Visual Basic, можно воспользоваться командой Закрыть и вернуться в … меню Файл.
