Часть I. Начальные сведения о VBA

Глава 1. Уважайте теорию, теория - это все!
Зачем мучиться с VBA?
VBA - это штурвал, но к нему нужен еще и корабль
VBA-приложения третьих фирм
О распространенности VBA-приложений
Программирование в VBA
Что визуального в Visual Basic для приложений?
Главные события
Цикл создания программы
Подробнее о том, что можно сделать в VBA
Настройка пользовательского интерфейса
Добавление новых возможностей
Создание более сложных программ
Совсем не тот BASIC
Интегрированная среда разработки приложений VBA
Макросы и VBA
Элементы управления ActiveX и другие
Объектно-ориентированное программирование и VBA
Так что же такое объект?
Объекты как компоненты VBA-приложений
VBA как стандарт (точнее, род стандарта)
VBA 5 против VBA 6
Другие "диалекты" VBA
Почему VBA обычно медленнее, чем Visual Basic

Глава 2. Не пишите программу, когда можно записать макрос
Как работают макросы
Когда следует записывать макрос
Макрос - и вещь хорошая, и развитие стимулирует
Планирование макросов
Запись макросов
Запуск средства записи макросов
Как выбрать имя для малютки
Другие опции диалогового окна Запись макроса
Кнопка, кнопка, ты чья?
Начало записи
Запись команд
Паузы во время записи и ее завершение
Выполнение макросов
Редактирование макросов как способ создания программного кода
Редактирование программного кода макроса в редакторе Visual Basic
Простейшие усовершенствования макросов

Глава 3. База программирования в VBA
Вызов редактора Visual Basic
Вызов редактора Visual Basic одним щелчком
Краткое знакомство с редактором Visual Basic
Требуется помощь!
Скорая помощь VBA
Вызов справки VBA-приложения
Поиск в стоге справок
Контекстно-зависимая справка
Что особенного в разделах справки VBA
Установка всех файлов справки
Создание VBA-программы
Шаг 1. Проектирование программы-примера
Шаг 2. Реализация проекта
Шаг 3. Тестирование программы
Шаг 4. Отладка
Вызов формы из VBA-приложения
Возвращение в VBA-приложение

Глава 4. Выполнение VBA-программ
Все определяется именем
Запуск из диалогового окна Макрос
Вызов диалогового окна Макрос
Выполнение макроса
Поиск макроса в диалоговом окне Макрос
Быстрый запуск программ
Кнопки запуска программ
Настройка пунктов меню в VBA-программах
Сочетания клавиш в Word, Excel и Access
Макросы для мыши Visio
Автоматический запуск VBA-программ


Часть II. Освоение среды разработки VBA


Глава 5. Редактор Visual Basic к вашим услугам
Пользовательский интерфейс редактора Visual Basic
Легкий завтрак с меню
Прогулка по панелям инструментов
Настройка панелей инструментов и меню
Сочетания клавиш
Управление окнами
Одни окна любят одиночество, другие - всегда в компании
Видимые и скрытые окна
Закрепленные и свободно перемещаемые окна
Сохранение структуры экрана

Глава 6. Практическая работа в редакторе Visual Basic
Управление проектами с помощью проводника проектов
Вызов проводника проектов
Исследование проводника проектов
Установка свойств проекта
Использование обозревателя объектов
Вызов обозревателя объектов
Просмотр объектов
Поиск членов
Использование информации из окна обозревателя объектов
в программном коде
Секреты кодирования
Вызов окна программного кода
Создание нового окна программного кода
Печатание программного кода
Созидательные возможности окна программного кода
Использование окна свойств
Вызов окна свойств
Изменение имени проекта или модуля в окне свойств
Краткое знакомство с окнами для отладки


Часть III. Курс программирования в VBA


Глава 7. Анатомия выдающейся VBA-программы
Строительные блоки программы
Определение программы
Пример программы
Иерархия VBA
Откуда берутся проекты, мама?
Все о модулях
Планирование модулей
Добавление нового модуля в VBA-проект
Что к чему в новом модуле
Стандартные модули и модули с классом
Создание процедур
Каркас процедуры
Создание новой процедуры
Процедуры типа Sub
Процедуры типа Function
Привлекательные аргументы
Организация процедур
Обзор области видимости
Задание области видимости процедуры
Использование локальных процедур
Использование операторов
Объявления
Операторы присваивания
Выполняемые операторы
Параметры компилятора
Операторы в несколько строк и несколько операторов в строке

Глава 8. Соблюдайте манеры (этикет VBA)
Выбор имен
Использование прописных букв
Соглашения об именах в VBA
Сделайте программный код красивым
Отступы в программе
Правила для отступов
Свободное пространство - это хорошо
Не пользуйтесь прокруткой без необходимости!
Замечания о комментариях
Как создавать комментарии
Когда использовать комментарии
Пространные комментарии
Убежище Rem для комментариев

Глава 9. Хранение и обработка информации
Работа с переменными
Объявление переменных
Где объявлять переменные
Когда объявлять переменные
Выбор и использование типов данных
Задание области видимости переменной
Объявление нескольких переменных в одной строке
Размещение информации в переменных
Выражен-и-я
Работа с постоянными значениями
Объявление констант
Плоды использования констант
Использование констант для атрибутов
Знаки операций
Получение приоритета
Вычисления с помощью арифметических операторов
Сравнение значений
Объединение текста
Дополнительные сведения о типах данных
Преобразование типов данных
Тип Variant
Выбор числового типа данных
Когда использовать логические переменные
Работа с денежными значениями
Работа с датами
Информацию - в строку
Кавычки в объявлениях строк
Строки фиксированной длины

Глава 10. Объективность
Так что же такое объект?
Объекты как компоненты VBA-приложений
Объекты на уровне понятий
Практическое определение объекта
Классы объектов и конкретные объекты
Семейства объектов
Что такое объектная модель
Понимание важности объектной модели
Расширение объектной модели
Формы в VBA - это тоже объекты
Использование объектов в программе
Основные правила программирования объектов
Какие объекты есть у вас?
Выяснение и установка свойств объектов
Что нельзя делать с некоторыми свойствами
Установки свойств - это данные
Выяснение текущего значения свойства
Изменение значения свойства
Свойства, выбираемые по умолчанию
Объекты в роли свойств
Вверх по родовому дереву
Методы в действии
События
Идентификация объекта для использования
Понимание объектных выражений
Создание переменных для объектов
Создание новых объектов
Использование оператора Is
Эффективная работа с объектами в программе
Использование оператора With
Использование структуры For Each...Next

Глава 11. Инструменты встроенного оркестра VBA
Знакомство со встроенными командами
Форматирование данных
Работа с функцией Format
Использование встроенных форматов для функции Format
Создание собственных форматов
Использование функции IIf
Работа с новыми функциями форматирования VBA 6
Конвертирование данных
Работа с шестнадцатеричными и восьмеричными значениями
Преобразование чисел в строки и наоборот
Работа со строками
Отбрасывание символов в конце строк с помощью Len и Left
Извлечение символов из строк
Работа с датами и временем
Дата со временем
Исчисление дат
Простые контакты с внешним миром
Отображение окон сообщений
Получение информации от пользователя
Работа с логическими значениями
Забавы с математикой и деньгами
Математические функции
Финансовые функции
Другие встроенные команды

Глава 12. Управление потоком
Укрощение диких программ с помощью управляющих структур
Анатомия управляющих структур
Вложенные управляющие структуры
Используйте отступы!
Курс на использование условных выражений
Как работает условное выражение
Условные выражения без операторов сравнения
Использование логических операций в условиях
Условные операторы If...Then
Основная форма If...Then
Однострочные операторы If...Then
Операторы If...Then... Else
Использование операторов If...Then
Использование операторов Select Case
Проверка условий в операторах Select Case
Пример оператора Select Case
Оператор Case Else
Дополнительные сведения об операторе Case
Повторение с помощью циклов
Циклы Do
Повторение под управлением циклов For...Next
Управление потоком с помощью Go To
Пример использования Go To
Оправдания Go То

Глава 13. Тонкости хранения данных: массивы и семейства
Знакомство с массивами
Ссылка на элемент массива
Данные массива
Использование многомерных массивов
Объявление массивов
Обращение к элементам массива
Заполнение массива данными... навалом
Копирование одного массива в другой
Управление наборами данных с помощью объектов Collection
Оценка преимуществ использования семейств
Создание объектов Collection
Добавление данных в семейство
Удаление элементов
Подсчеты в семействах
Доступ к элементам семейств
Использование семейств с базами данных
Определение своих собственных типов данных
Знакомство с пользовательскими типами данных
Объявление пользовательского типа данных
Объявление переменных пользовательского типа
Обработка информации, представленной пользовательским типом данных
Работа с переменными пользовательского типа данных

Глава 14."Бронированный" программный код: отладка и устранение ошибок
Все возможные неприятности происходят обязательно
Исправление синтаксических ошибок
Энтомология для программистов
Тест, тест, тест
Сделайте паузу!
Сквозь программу по шагам
Основные приемы отладки
Автоматические подсказки
Немедленное вознаграждение в окне Immediate
Все переменные под присмотром в окне Locals
Механика процесса
Зачем редактировать значения переменных?
Как редактировать значения переменных
Ключевое средство отладки: окно Watches
Добавление контролируемых выражений
Работа с окном Add Watch
Редактирование контролируемых выражений
Использование контролируемых выражений для назначения точек останова
Отлов "диких" ошибок с помощью On Error и Err
Откуда берутся ошибки выполнения
Как работает программный обработчик ошибок
Как создать обработчик ошибок


Часть IV. Создание форм


Глава 15. Проектирование форм
Основы проектирования форм
Запуск форм
Формы и элементы управления - программируемые объекты
Планирование форм для программы
Печать форм в процессе проектирования
Дизайн новой формы
Создание формы
Добавление элементов управления из панели инструментов Toolbox
Работа со свойствами форм и элементов управления
Путешествие в окне свойств
Получение справки о свойствах
Изменение установок свойств
Не забывайте выбрать нужный элемент
Ключевые свойства
Имя и заголовок - не одно и то же
Модальные формы против немодальных
Изменение размеров и позиции форм и элементов управления
Управление размещением формы на экране
Позиционирование элементов управления
Выбор цветов
Выбор шрифтов
Шик специальных эффектов
Простые фокусы с мышью
Добавление рисунков в формы и элементы управления
Удаление рисунков с помощью окна свойств
Работа с элементами управления
Вырезание, копирование, вставка
Удаление элементов управления
Выбор нескольких элементов управления сразу
Отмена изменений
Использование координатной сетки
Задание параметров сетки
Форматирование элементов управления
Использование меню Format
Использование панели инструментов UserForm
Группировка элементов управления
Размещение одних элементов управления поверх других
Одновременное форматирование нескольких элементов управления
Другие возможности форматирования

Глава 16. Программирование форм
Покажите то, что имеете!
Загрузка и отображение форм
Отображение окон
Загрузка форм без отображения их на экране
Внесение изменений в форму перед ее отображением
Изменение формы с помощью событий Initialize и Activate
Использование переменных для ссылок на формы
Как скрыть видимую форму
Удаление формы из памяти
Главные события
Типичные события
Программирование обработки событий
Создание и редактирование процедур обработки событий
Синтаксис процедур обработки событий
Щелкните здесь...
Когда не нужно создавать процедуры обработки события Click
События Click в формах
Создание программного кода для события Change
Распознавание нажатий клавиш
Основные приемы программирования форм
Добавление кнопок Закрыть и Отмена
Простые процедуры обработки событий для кнопок Закрыть и Отмена
Клавишная альтернатива
Программирование кнопки ОК
Проверка правильности вводимых данных
Программный код проверки
События, которые можно использовать для проверки
правильности вводимых данных
Как выбрать событие для проверки


Часть V. Великолепные десятки


Глава 17. Десятка (без трех) эффектных решений с помощью VBA
Сохранение информации в реестре Windows
Доступ к объектам других приложений
Основы межпрограммного взаимодействия
Добавление ссылки на внешнюю объектную модель
Объявление внешних объектов
Создание внешнего объекта
Использование внешних объектов
Управление базами данных с помощью VBA
Работа с файлами
Принципы работы с файлами в VBA
Ссылки на библиотеку Microsoft Scripting Runtime
Доступ к файлам
Работа со свойствами файлов
Копирование, изменение и удаление файлов
Чтение и запись данных
Использование объектов Dictionary
Базисные сведения об объектах Dictionary
Лучше, чем семейства
Самодельные объекты
Создание модулей классов
Компоненты определения класса
Использование своих собственных объектов
Использование элементов управления ActiveX
Добавление новых элементов в панель элементов управления
Использование элементов управления ActiveX в программах

Глава 18. Три десятка ресурсов VBA
Первая справочная инстанция
Возьмите готовый программный код
Ознакомьтесь с предложениями Microsoft
Журналы и газеты
Web-страницы, посвященные VBA
Галактика элементов управления ActiveX
Мания усовершенствования
Изобразительное искусство
Диаграммы и графики
Текстовые документы и электронные таблицы
Алло, оператор!
Бери деньги, и вперед!
Разработка элементов управления
Разное
Вычислительная мощь
Помогите, помогите!