- •Л.Н. Лядова, н.В. Фролова, в.В. Ланин, е.Б. Замятина, м.А. Плаксин, б.А. Ермолаев
- •Часть 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.2.3. Объект WorkSheet
Рабочая книга является предком (родительским объектом) объекта Worksheet. Рабочие листы являются основой для конструирования форм, выполнения задач обработки данных и вывода их на экран. Рабочие листы могут использовать свыше 400 встроенных функций Excel. Табличная структура рабочего листа делает его прекрасным средством для хранения информации, небольших наборов данных.
Множество всех объектов Worksheet представляется семейством Worksheets. Элементы этого семейства являются подмножеством семейства Sheets, включающего не только рабочие листы, но и листы диаграмм, диалоговых окон Excel 5.0. Наиболее часто используемым свойством объекта Worksheets является свойство Count (число объектов в семействе). Метод Add (создание рабочего листа) – это чаще всего используемый метод семейства.
Чаще всего используются следующие свойства объекта Worksheet:
Index – индекс заданного объекта Worksheet в семействе объектов Worksheets (только чтение);
Name – имя рабочего листа;
UsedRange – возвращает объект Range, который ссылается на диапазон рабочего листа, содержащий данные;
Type – тип рабочего листа;
Visible – управляет выводом рабочего листа на экран.
Основные методы объекта Worksheet:
Activate – активизирует заданный рабочий лист;
Calculate – вызывает перевычисление всех формул рабочего листа;
Copy – копирование рабочего листа;
Delete – удаляет рабочий лист из книги;
Move – перемещение рабочего листа;
Protect – защищает рабочий лист.
Рабочий лист состоит из ячеек, для работы с которыми существуют соответствующие объекты.
8.2.4. Объект Range
Объект Range содержится в объекте Worksheet и используется для представления одной или более ячеек рабочего листа. Непосредственно из ячеек доступны свыше 400 встроенных функций Excel, из них можно вызывать функции VBA, ячейки можно связывать с другими ячейками того же листа, других рабочих листов и других рабочих книг.
Этот объект «попадает между» единичными объектами и объектами из семейств. При ссылке на ячейки диапазона можно указывать адрес единичной ячейки (ее координаты, например: Range(“A1”)), адресный индекс (например: Range(“A1:F15”)) или имя, присвоенное диапазону (например, после выполнения присваивания Range(“A1”).Name=”Ячейка1” можно обращаться к ячейке по имени: Range(“Ячейка1”)).
Диапазон в программе можно задать следующим образом:
используя ссылку на ячейку (например: Range(“D15”));
используя имя диапазона (например: Range(“Итоги”));
используя объект ActiveCell, указывающий на ячейку или объект Range, который имеет фокус при вводе данных с клавиатуры;
используя объект Selection (в отличие от объекта ActiveCell, может указывать не только на одну ячейку или даже диапазон ячеек, но и на графические объекты и т.п.).
Основные свойства объекта Range:
Address – расположение диапазона на рабочем листе (параметры определяют, возвращается ли внешняя ссылка, абсолютные или относительные координаты, стиль ссылок (нотация A1 или нотация R1C1));
Cells – ссылка на ячейки по их положению относительно заданного объекта Range;
Column – номер первого столбца в диапазоне;
CurrentRegion – объект Range, включающий диапазон ячеек, границами которого являются пустые строки и столбцы (полезен например, если диапазон выделяемых данных изменяется – нужно выделить весь массив данных на листе);
Count – количество ячеек, представляемых объектом (только для чтения);
Dependents – диапазон ячеек, содержащих все зависимости исходного диапазона ячеек, т.е. все ячейки, в формулах которых есть ссылки на какие-либо ячейки из исходного диапазона (объект Range; только чтение);
Name – имя диапазона;
Row – номер первой строки в диапазоне;
Value – значение, которое содержит диапазон (если в диапазоне несколько ячеек, то значением свойства является массив, содержащий значения всех ячеек диапазона);
Formula – представленная в виде текстовой строки формула (или массив строк, содержащих формулы), которая содержится в диапазоне ячеек (включая знак “=”);
Text – представленное в виде текстовой строки форматированное значение (или массив строк, содержащих форматированные значения), содержащееся в диапазоне (только чтение).
Основные методы объекта Range:
AutoFit – задание автоматической настройки ширины столбца и высоты строки диапазона;
Calculate – вызывает перевычисление всех формул диапазона;
ClearContents – очищает все значения и формулы диапазона, но оставляет форматы;
ClearComments – очищает комментарии;
ClearFormats – удаляет формулы;
ClearNotes – удаляет примечания;
Copy – копирует значения из диапазона ячеек в другой диапазон или в буфер;
Cut – вырезает значения из диапазона ячеек и помещает их в другой диапазон или в буфер;
Count –число объектов (в диапазоне);
PasteSpecial – специальная вставка из буфера обмена (реализация команды специальной вставки).
Объект Range можно использовать совместно с семействами Rows и Columns (это свойства рабочих листов или диапазонов, возвращающие объекты Range, представляющие все строки и все столбцы рабочего листа или диапазона).
Номера первой строки и первого столбца являются свойствами диапазона. Чтобы вернуть номер последнего столбца в диапазоне, можно записать следующее выражение:
Диапазон.Columns(Диапазон.Columns.Count).Column
Аналогично можно получить номер последней строки.
