Предисловие
Для кого предназначена книга
Структура книги
Принятые условные соглашения
Об авторах

Глава 1. Базовые сведения о VBA
Что такое VBA?
Что такое объект?
Семейство объектов
Классы
Методы
Свойства
События
Общие свойства и методы семейств
объектов
Создание функции пользователя в VBA
Где пишется код функции пользователя?
Структура кода функции пользователя
Создание первой функции пользователя
Вычисление стоимости партии продаваемых
книг при помощи пользовательской функции
Параметрами пользовательских функций
могут быть ссылки на диапазоны
Построение уравнения регрессии при
повторении данных
Автоматизация работы рабочего листа при
помощи элементов управления
Работа с макрорекордером (MacroRecorder)
Структура кода процедуры
Элемент управления Кнопка, создание
процедуры обработки события и
автоматическое перелистывание рабочих
листов
Создание кнопочных сценариев
Структура редактора VBA
Окно Project - VBA Project (Проект)
Окно редактирования кода
Интеллектуальные возможности редактора
кода
Окно редактирования форм (UserForm)
Окно Properties (Свойства)
Окно Object Browser (Просмотр объектов)

Глава 2. Основные объекты VBA
Объектная модель
Полная и неявная ссылка на объект
Объект Application
Свойства объекта Application
Методы объекта Application
События объекта Application
Объект Workbook и семейство Workbooks
Свойства объекта Workbook и семейства
Workbooks
Методы объекта Workbook и семейства
Workbooks
События объекта Workbook
Объект Worksheet и семейство Worksheets
Свойства объекта Worksheet и семейства
Worksheets
Объект Shape
Методы объекта Worksheet я семейства
Worksheets
События объекта Worksheet
Объекты Range и Selection
Адресация ячеек
Задание групп строк и столбцов
Связь объекта Range н свойства Cells
объекта Woksheet
Свойства и методы объекта Range
Свойства объекта Range
Функции RGB и QBColor
Управление цветом фона и элемент
управления Счетчик
Методы объекта Range
Объект Window
Примеры приложений
Подведение итогов
Создание шаблона отчета
Связывание макроса или процедуры с
кнопкой настраиваемой панели
инструментов
Создание итоговой таблицы
Выделение цветом различных категорий
прибыли и установка типа курсора
Управление отображением примечаний и
элемент управления Выключатель
Подсчет просроченных платежей и
отображение рисунков на кнопках
Создание формы на базе рабочего листа

Глава 3. Основы программирования на VBA
Допустимые имена
Типы данных
Переменные
Инструкция Option Explicit
Область видимости переменной
Время жизни переменной
Строка
Массивы
Массив и диапазон
Задание массива при помощи функции Array
Динамические массивы
Функции и процедуры для работы с
массивами
Константы
Перечисленный тип для работы с множеством
констант
Тип данных, определенный пользователем
Операции VBA
Математические операции
Операции отношения
Логические операции
Другие операции
Приоритеты операций
Встроенные функции VBA
Математические функции
Функции проверки типов
Функции преобразования форматов
Окно Immediate и объект Debug
Пользовательские форматы
Различные форматы для различных
значений
Еще несколько функций преобразования
типов
Функции обработки строк
Функции времени и даты
Функции выбора
Функции, возвращающие строки
Встроенные диалоговые окна
Финансовые функции
Оператор присвоения
Перенос строки
Комментарии
Расположение нескольких операторов в одной
строке
Оператор With
Операторы управления
Оператор условного перехода
Оператор выбора
Оператор For - Next
Оператор For Each
Оператор While - Wend
Оператор Do - Loop
Оператор безусловного перехода GoTo
Процедура
Организация программы на языке VBA
Вызов процедуры
Процедура с необязательными параметрами
Назначение необязательным параметрам
значения по умолчанию
Использование неопределенного количества
параметров
Использование массива в качестве
параметра процедуры
Передача параметров по ссылке и значению
Рекурсивные процедуры
Фракталы
Используя рекурсию, будьте осторожны

Глава 4. Диаграммы
Построение шаблона отчета с диаграммой
Объекты Chart и ChartObject
Свойства объекта Chart
Методы объекта Chart
Изменение диапазона, по которому
строится диаграмма и элемент управления
Список
Изменение типа диаграммы и
многостолбцовый элемент управления
Список
Автоматическое определение диапазона, по
которому строится диаграмма
Линия тренда
Метод Chart Wizard
Построение поверхности и управление ее
ориентацией
Печать элементов управления

Глава 5. Форма и элементы управления
Форма
Семейство форм
Свойства формы
Методы формы
События формы
Инструкции Load, Unload и End
Ключевое слово Me
Процедуры обработки событий
Два примера формы
Элементы управления
Общие свойства элементов управления
Соглашения об именах
Общие методы элементов управления
Общие события элементов управления
Кнопка (Command Button)
Поле (TextBox)
Надпись (Label)
Переключатель (Option Button)
Рамка (Frame)
Приложение Расчет амортизации и
управление видимостью элементов
управления
Флажок (CheckBox) и Выключатель (Toggle
Button)
Полоса прокрутки (ScrollBar) и Счетчик
(SpinButton)
Усовершенствованный Подбор параметра
Список (ListBox)
Заполнение списка
Амортизация линейная и двухкратного
учета
Выбор нескольких элементов из списка
Поле со списком (ComboBox)
Заполнение таблицы базы данных
Поле со списком, ввод данных в
алфавитном порядке и объект Collection
Добавление и удаление данных в поле со
списком
Рисунок (Image)
Приложение Бегающий шар
Приложение Плавающие часы и имя
Модифицированный Мастер диаграмм
Набор страниц (MultiPage)
Еще одна модификация Мастер диаграмм
Набор вкладок (TabStrip)
Последовательность перехода элементов
управления
Отображение встроенных диалоговых окон
Дополнительные элементы управления
Пример дополнительного элемента
управления - Календарь
Приложение Заказ и определение элемента
управления, на котором был фокус
Использование нескольких форм в приложении

Глава 6. Обработка данных
Консолидация рабочих листов
Процесс консолидации
Метод Consolidate объекта Range
Пример приложения, консолидирующего
данные
Сортировка данных
Описание процесса сортировки
Метод Sort
Пример приложения, сортирующего данные
Использование Автофильтра
Описание процесса автофильтрации
Метод AutoFilfer
Примеры приложения, фильтрующего данные
Промежуточные итоги
Описание процесса создания промежуточных
итогов
Метод Subtotal
Объект Outline
Пример приложения, подводящего
промежуточные итоги и управляющего
структурой
Сводная таблица
Описание процесса создания сводной
таблицы
Объект PivotTable
Метод PivotCaches и объект PivotCache
Метод PivotTableWizard
Объекты PivotTable и PivofField
Пример построения сводной таблицы на
основе списка Microsoft Excel
Описание процесса консолидации данных
при помощи сводной таблицы
Пример автоматизации построения и
обновления консолидирующей сводной
таблицы
Группировка полей сводной таблицы
Поиск решения
Решение транспортной задачи при помощи
Поиска решения
Функции, программирующие Поиск решения
Приложение Транспортная задача
Решение оптимизационных задач, зависящих
от параметра
Решение уравнения, зависящего от двух
параметров
Объект Scenario
Пример приложения по работе со
сценариями

Глава 7. Программирование панели инструментов
и создание справочной системы
Объект Command Bar и семейство CommandBars
Семейство CommandBarControls и объект
CommandBarControl
Пример создания панели инструментов
пользователя
Меню с раскрывающимся списком
Пример создания строки меню пользователя
Пример контекстного меню
Программирование Помощника Microsoft Office
Структура Помощника Microsoft Office
Типы Помощников Microsoft Office
Свойства объекта Assistant
Объект Balloon
Два примера программирования Помощника
Microsoft Office
Создание справочного файла
Создание файла содержания
Создание файла разделов
Создание файла проекта
Подключение контекстно-зависимой справки
при помощи метода Help
Подключение контекстно-зависимой справки
при помощи помощника Microsoft Office
Подключение контекстно-зависимой справки
при помощи панели инструментов
Защита VBA-проекта

Глава 8. Обработка ошибок и отладка программ
Разработка процедур, предотвращающих
появление ошибок
Контроль вводимых значений с помощью
обработки события Keypress
Перехват и обработка ошибок
Построчный перехват ошибок
Отладка программ
Ошибки компиляции
Ошибки выполнения
Логические ошибки
Инструкция Option Explicit
Пошаговое выполнение программ
Точка прерывания
Вывод значений свойств и переменных

Глава 9. Работа с базами данных и файлами
Microsoft Jet
DAO
Семейства объекта DBEngine
Объект Workspace
Объект Database
Порядок работы при объектном доступе к
данным
Создание рабочей области
Создание базы данных
Открытие базы (источника) данных
Объект Recordset
Создание объекта Recordset
Методы и свойства объекта Recordset
Пример приложения по работе с базами
данных
Применение баз данных при создании
интернациональных приложений
Функции по работе с файлами
Примеры использования функций по работе
с файлами
Инструкция Shell

Глава 10. Интеграция приложений
Использование технологии ActiveX Microsoft
Office
Связывание и внедрение объектов
Внедрение нового объекта
Внедрение существующего объекта
Использование Специальной вставки для
внедрения объектов
Семейство объектов OLEObjects
Средство Automation
Программные идентификаторы приложений -
серверов Automation
Функции доступа к объектам Automation
Создание нового документа Word функцией
Create Object
Открытие документа Word функцией GetObject
Управление объектами Word из Excel
Позднее и ранее связывание
Управление объектами Access из Excel
Управление объектами Excel из Access
Управление офисными приложениями из Visual
Basic
Поиск файлов и список ранее использованных
файлов

Глава 11. Разработка библиотечных компонентов
Общие сведения
Классификация библиотечных компонентов
Библиотечные файлы-шаблоны (XLT)
Библиотечные файлы-надстройки (XLA)
Важные свойства надстроек
Код надстроек полностью откомпилирован
Защита форм и модулей
Невозможность отключения макросов
Использование XLA-файла в качестве
исходного ресурса
Создание надстроек
Утилита указания границ расчетного периода
- эксплуатация
Файлы утилиты и их краткое описание
Расположение файлов утилиты
Подготовка к работе
Структура демонстрационного файла
Основная диалоговая форма tlPeriod
Дополнительные диалоговые формы tlPeriod
Возможности установки дат
Оптимизация клавиатурного ввода
Защита от ошибок, совершенных
пользователем
Структура файла tIPeriod.XLS
Возможности настройки
Подключение утилиты к прикладным
Excel/VBA-разработкам
Вызов основной подпрограммы
Организация ссылок на основные ячейки
рабочего листа Period
Сохранение установленных значений и
параметры, передаваемые в основную
процедуру/функцию при вызове
Утилита указания границ расчетного периода:
внутреннее устройство
Разделение утилиты на два файла
Служебные рабочие листы файла
tIPeriod.XLS
Использование только встроенных функций
Ехсеl
"Самодостаточность" файла tlPeriod. XLS
Взаимодействие диалоговых форм и ячеек
рабочих листов
Состав VBA-проекта
Модуль General_Public
Глобальные ссылки
Использование функции DateAdd
Распределение сложности между
VBA-кодом и функциями рабочих листов
Основная диалоговая форма
Подготовка к работе
Подготовка к очередному предъявлению
Обработка изменений значений списков
Обработка события Click кнопок "минус"
и "плюс"
Обработка события Click кнопок Вчера,
Сегодня, Завтра
Обработка события Click кнопок Нач.
дата = кон. дата и Кон. дата = нач.
дата
Обработка события Click кнопок группы
"Установить границы расчетного
периода" (кроме кнопки "За последние")
Обработчики события Click кнопок ОК и
Отмена
Диалоговая форма UserForm_LessMore
Обработчики событий элементов формы
UserForm_LessMore
Диалоговая форма UserForm_LastPeriod
Функция определения доступности логического
диска

Глава 12. Классы
Классы и экземпляры
Создание модулей класса
Процедуры Property Let, Property Set и
Property Get
Пример создания класса Дробь
Гиперссылки
Добавление гиперссылок на документы
Office
Задание гиперссылки формулой
Объект Hyperlink

Приложение. Описание компакт-диска
Предметный указатель