
- •Л.Н. Лядова, н.В. Фролова, в.В. Ланин, е.Б. Замятина, м.А. Плаксин, б.А. Ермолаев
- •Часть 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.4.4. Создание диаграмм
Объект Chart предоставляет возможность отображать данные из любого диапазона рабочего листа в виде любого из 73 различных видов диаграмм.
Каждая составляющая диаграммы может управляться или настраиваться с помощью отдельных объектов, содержащихся в объекте Chart. Упрощенная иерархическая схема объекта Chart показана на рис. 11.
Ниже приведен текст процедуры на VBA, создающей новую диаграмму на том же рабочем листе, что и исходные данные, представляемые этой диаграммой.
Sub ДобавитьДиаграмму()
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData _ Source:=Sheets("Отчет").Range("A1:E10"), _ PlotBy:=xlColumns
ActiveChart.Location _ Where:=xlLocationAsObject, Name:="Отчет"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Отчет"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary). _ AxisTitle.Characters. Text = "Филиал/месяц"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle. _ Characters.Text = "USD"
End With
End Sub
Более подробно ознакомиться со средствами создания и форматирования диаграмм можно с помощью справочной системы. Кроме того, можно воспользоваться средствами макрогенерации для выявления необходимых свойств и методов объектов, включенных в объект Chart.
8.4.5. Работа со структурой данных
Структура дает возможность организовать несколько уровней представления данных, степени детализации которых рассчитаны на пользователей с разным уровнем требований к информации. Структура позволяет разворачивать или сворачивать часть элементов рабочего листа для более или менее детального отображения данных.
Возможности структурирования в Excel позволяют создавать до восьми уровней структуры.
Структуры в Excel создаются либо автоматически, либо вручную (если данные в таблице организованы неудачно и Excel не может их структурировать автоматически). В общем случае данные следует располагать в таблицах так, чтобы итоговые строки (с общими данными) располагались под строками с исходными (детальными) данными, а итоговые столбцы – справа от столбцов исходных данных. Для визуального выделения итоговых данных их можно выделить в таблице шрифтом или цветом (для создания структуры это роли не играет).
Excel может автоматически создать структуру диапазона или таблицы. Для этого нужно либо выделить диапазон, если структура создается для отдельного диапазона данных, либо выделить любую ячейку, если структура создается для всего рабочего листа; затем в меню Данные выполняется команда Группа и структура Создание структуры. Если данные расположены неудачно и Excel не может разобраться с их структурой, на экран будет выведено соответствующее сообщение.
Если Excel удается выявить структуру данных и выполнить их группировку, то в окне рабочего листа появляется дополнительная информация. Например, если при создании структуры была выполнена группировка данных в строках, слева от имен столбцов таблицы появляются кнопки с номерами уровней данных в созданной структуре. Щелчок по кнопке с номером уровня ведет к отображению данных с первого по заданный уровень включительно. Слева от номеров сгруппированных строк показываются маркеры строк (точки) и вертикальные линии в виде скобок, показывающие, какие строки сгруппированы. Перед итоговой строкой отображается кнопка со значком ‘–’, позволяющая скрыть детальную информацию (т.е. данные сгруппированных строк, если они отображены) или отобразить ее (кнопка с символом ‘+’). Если информация группировалась по столбцам, дополнительные кнопки появляются над именами столбцов.
Символы структуры можно отображать на экране или можно их скрыть. Режимом отображения управляет флажок на вкладке «Вид» диалогового окна параметров, открываемого соответствующей командой меню Сервис. Переключение режимов можно выполнять с помощью комбинации клавиш Ctrl+8.
Структуру данных можно удалить с помощью команды Группа и структура Удалить структуру.
Структура данных создается Excel автоматически при выполнении некоторых операций, например, при консолидации данных.
Для ручного создания структуры нужно выполнить следующую последовательность действий:
в строках или столбцах таблицы выделить ячейки, которые нужно сгруппировать при создании структуры (выделяются ячейки, содержащие исходные данные одного уровня, без итоговых данных для создаваемой группы);
выполнить команду Группа и структура Группировать… из меню Данные и в диалоговом окне команды установить переключатель в положение «строки» или «столбцы» в зависимости от расположения исходных данных.
Описанные шаги повторяются для всех группируемых диапазонов ячеек на всех уровнях создаваемой структуры. Для отмены группировки нужно выделить сгруппированный диапазон и выполнить команду Группа и структура Разгруппировать…
Операции по созданию структуры документа можно выполнять с помощью программного кода на VBA. Например, следующие инструкции создают структуру автоматически, без изменения формата данных:
ActiveSheet.Outline.AutomaticStyles = False Selection.AutoOutline
Метод AutoOutline используется для создания структуры для выделенного диапазона. Синтаксис его вызова следующий:
Выражение.AutoOutline
где выражение определяет объект типа Range. Если выделенный диапазон представляет единственную ячейку, структура создается для всего листа, новая схема замещает все существующие.
Объект Outline представляет схему (структуру) рабочего листа. Он позволяет, в частности управлять отображением структурированной информации на рабочем листе. Например, метод ShowLevels, имеющий синтаксис
Выражение.ShowLevels(RowLevels, ColumnLevels)
показывает специфицированное количество уровней строк и/или столбцов схемы (структуры). Например, оператор
ActiveSheet.Outline.ShowLevels 1
отображает только строки, расположенные в структуре активного рабочего листа на первом уровне.
Подробнее свойства и методы данного объекта можно изучить, используя справочную систему VBA.