- •Л.Н. Лядова, н.В. Фролова, в.В. Ланин, е.Б. Замятина, м.А. Плаксин, б.А. Ермолаев
- •Часть 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 Постановка задачи
- •Разработка документа
- •Разработка экранной формы
- •Список литературы
Глава 8.Разработка приложений с помощью Excel
Компонент Excel является наиболее популярным для разработки приложений, предназначенных для различных сфер: клиентских приложений для баз данных; финансовых моделей и инструментов анализа; систем подготовки отчетов, статистических и финансовых презентаций; экспертных информационных систем.
Данные в Excel представляются в виде таблиц, размещаемых на рабочих листах. Любое значение (число, дата, символьная строка и т.п.), вводимое пользователем, помещается в ячейку таблицы. Каждая ячейка таблицы находится на пересечеиии строки и столбца. Строки и столбцы таблицы последовательно нумеруются (строки – числами от 1 до 65 536, столбцы – буквами от A до IV).
В таблицах можно не только размещать данные, но и выполнять расчеты, осуществлять анализ данных, формировать на их основе отчеты, представляя данные в удобной для восприятьия форме. Excel позволяет выполнять операции как над отдельными значениями, размещенными в ячейках таблицы, так и над диапазонами ячеек, над таблицами в целом.
При создании таблиц лучше соблюдать правило: один рабочий лист – одна таблица, что позволит избежать проблем при форматировании таблиц и выполнении различных операций над ними.
Рабочие листы «вкладываются» в рабочие книги, которые хранятся в файлах с расширением XLS. Пользователь имеет возможность работать с несколькими книгами одновременно, связывать данные, размещенные в различных книгах.
Работа приложения строится на объектной модели, которая рассматривается ниже.
8.1.Иерархия объектов Excel
Объектная модель Excel содержит свыше 100 встроенных объектов и объекты, совместно используемые всеми приложениями Microsoft Office. К совместно используемым относятся CommandBars Data Access Objects (объекты доступа к данным), Forms (пользовательские диалоговые окна и элементы управления), Office Assistant и FileSearch. Объекты из других приложений Microsoft Office и BackOffice можно также использовать при разработке приложений на основе Excel.
Объекты Excel позволяют осуществлять анализ данных для широкого класса задач. Приложения создаются путем объединения объектов с помощью VBA. Все объекты подробно документированы в справочной системе VBA.
Объекты Excel находятся на разных уровнях иерархии. Для их эффективного использования в программах VBA необходимо представлять себе эту иерархию (рис. 8). На рис. 9-11 показана иерархическая схема объекта WorkBook. Символ ‘’ справа от названия объекта означает, что его структура раскрыта на других схемах.
Расположенный на верхнем уровне иерархии объект Application представляет Microsoft Excel. Остальные объекты расположены на следующих уровнях иерархии. Второй уровень:
AddIn – объект, представляющий файл надстройки Excel;
Assistant – объект для управления помощником (совместно используется всеми приложениями MS Office);
AutoCorrect – объект для доступа к средствам автозамены;
CommandBar – объект, представляющий панели команд;
Debug – объект, представляющий окно отладки;
Dialog – объект, представляющий встроенное диалоговое окно;
FileFind – объект для доступа к средствам диалогового окна «File Find» (только для Macintosh);
FileSearch – объект, применяемый для поиска файлов (совместно используется приложениями Office);
Name – объект, представляющий имя диапазона ячеек;
ODBCError – объект, используемый для представления ошибок при операциях с базами данных через ODBC;
RecentFile – объект, представляющий файл из списка последних использовавшихся файлов;
VBE – объект для управления редактором VBA (совместно используется приложениями Office);
Window – объект, используемый для доступа к окнам;
Workbook – объект, представляющий файл рабочей книги;
WorkSheetFunction – объект, используемый для исполнения функций рабочего листа из программы на VBA.
Следующие уровни иерархии включают набор дополнительных объектов, используемых для поддержки (обеспечения функционирования) объектов второго уровня. На рис. 8-11 изображены основные объекты Excel. В приведенные схемы не включены некоторые объекты, оставленные для совместимости с предыдущими версиями, объекты Microsoft Map и др. Более полную информацию можно найти в диалоговом окне «Просмотр объектов» и в справочной системе VBA.
Чтобы управлять свойствами и методами объекта, иногда нужно записать ссылки на все объекты, находящиеся в иерархии выше него. Ссылки на объекты записываются последовательно, начиная с верхнего уровня иерархии. В качестве разделителя между ссылками (именами) ставится точка. Например, оператор
Application.Workbooks(“Книга1”).Worksheets(1). _ Range(“A1”).Value = 1
заносит значение в указанный диапазон ячеек заданного рабочего листа выбранной рабочей книги.
Ссылки на объекты в семействе требуют указания индексов.
Для сокращения записи можно воспользоваться оператором With.
В некоторых случаях нет необходимости в перечислении всех ступеней иерархии. С какого уровня можно начать ссылки зависит от контекста вызова метода или обращения к свойству.
Если код выполняется из среды Excel, то указание объекта Application не является необходимым.
Для неявной ссылки на рабочую книгу можно использовать ссылки ActiveWorkbook (ссылка на активную рабочую книгу, с которой в данный момент работает пользователь) и ThisWorkbook (ссылка на рабочую книгу, в которой хранится исполняемый в настоящий момент код). Если открыта только одна книга, то ссылку на рабочую книгу можно опустить. Если открыто насколько рабочих книг, а ссылка на книгу опущена, действия выполняются над активной рабочей книгой.
Для доступа к активному рабочему листу можно использовать ссылку ActiveSheet. Ссылка на активный лист также может быть опущена.
На активный (т.е. выделенный) диапазон ячеек можно сослаться, используя свойство Selection объекта Application. Но это свойство может ссылаться и на другие объекты помимо ячеек, поэтому при использовании такой ссылки не следует полагаться на использование свойства по умолчанию.
Ссылки ActiveWorkbook, ThisWorkbook, ActiveSheet и Selection – это ссылки на свойства объектов.
