Введение
Макросы и языки программирования
Макрос и макрорекордер

Глава 1. Первые сведения о макросах
Из истории VBA
Зачем изучать язык программирования VBA
Ваш первый макрос
Первый макрос в Word
Программа в Access
Запись новых макросов
Задание стартовых условий для макроса
Запуск макрорекордера и присваивание имени макросу
Запись макроса в Word 2000
Задание стартовых условий
Присваивание имени макросу и выбор места для его сохранения
Использование панели инструментов и клавиатуры
для запуска макроса
Запись ваших действий
Остановка макрорекордера
Запись макроса в Excel 2000
Задание стартовых условий
Назначение имени и выбор места для сохранения макроса
Запись действий
Остановка макрорекордера
Код макроса
Выполнение макросов
Примеры записи более полезных макросов
Оформление замечаний
Подписи к рисункам
Подчеркивание листинга

Глава 2. Среда Редактора Visual Basic
Модули
Модули в Word 2000
Модули в Excel 2000
Редактор Visual Basic
Запуск Редактора VB
Окна Редактора VB
Меню Редактора VB
Знакомство с панелями инструментов Редактора VB

Глава 3. Редактирование простых макросов
Редактирование макросов
Отображение модуля
Как найти записанный макрос
Использование инструмента Object Browser
Просмотр модулей проекта с помощью Object Browser
Составные части записанного макроса
Редактирование текста макроса
Перемещение или копирование макроса из одного модуля в другой
Сохранение и перенос модулей как текстовых файлов
Экспортирование модулей
Импортирование модулей
Удаление модулей из проекта
Написание новых макросов и процедур
Вставка и переименование модуля
Выделение существующего модуля
Написание текста процедуры
Запуск процедуры во время редактирования
Отображение сообщений для пользователя процедуры
Сообщения об ошибках во время написания, редактирования
или выполнения процедуры
Ошибки синтаксиса
Ошибки времени исполнения
Печать исходного кода

Глава 4. Типы данных, переменные и константы
Обзор типов данных Visual Basic
Тип Date
Числа
Типы данных Byte, Integer и Long
Числа с плавающей точкой
Тип данных Currency
Текстовые строки
Логические значения
Тип данных Variant
Переменные
Что такое переменная?
Выбор имен для переменных
Создание переменных
Задание типа данных переменной
Использование Dim для объявления типизированных переменных
Использование символов определения типа для объявления
типизированных переменных
Использование Dim для объявления строковых переменных
фиксированной длины
Область действия: доступность переменных
Область действия процедурного уровня
Область действия модульного уровня
Использование переменных с одним и тем же именем в различных
уровнях области действия
Персистенция: Определение того, как долго переменные удерживают
свое значение
Требование явного объявления переменных
Константы
Создание именованных констант
Область действия констант
Написание литеральных констант
Константы String
Численные константы
Константы Date
Константы Boolean
Задание типа константы
Внутренние константы
Поиск имеющихся внутренних констант с помощью Object Browser
Получение данных от пользователя

Глава 5. Операторы и выражения
Совместимость типов данных
Автоматическое преобразование данных Visual Basic
Преобразования численных типов
Преобразования строк и чисел
Преобразования Boolean
Преобразования Date
Оператор присваивания (=)
Арифметические операторы
Сложение (+)
Вычитание (-)
Умножение (*)
Деление (/)
Целочисленное деление (\)
Деление по модулю (Mod)
Возведение в степень (^)
Операторы сравнения
Сравнения строк
Двоичное и текстовое сравнение строк
Выбор метода сравнения строк
Оператор Like
Оператор Is
Логические операторы
Таблицы истинности
And
Or
Not
Xor
Eqv
Imp
Операторы конкатенации строк
Использование конкатенации строк
Операторы конкатенации строк
Оператор конкатенации (&)
Оператор сложения в конкатенации строк
Приоритеты выполнения операций при вычислении сложных выражений

Глава 6. Использование функций Visual Basic
Функции
Использование функций в выражениях
Аргументы и возвращаемое значение функции
Игнорирование результата функции
Использование именованных аргументов функции
Использование других функций VBA
Математические функции
Функции преобразования данных
Функции даты и времени
Строковые функции
Использование функций для манипулирования строками
Удаление ненужных символов
Определение длины строки
Сравнение и поиск строк
Использование функции StrComp
Использование функции InStr
Разбиение строки на меньшие части
Функция Left
Функция Right
Функция Mid
Использование символов, которые нельзя ввести с клавиатуры
Форматирование значений данных
Использование функций host-приложений

Глава 7. Создание и использование функций и функций-процедур
Функции-процедуры и определенные пользователем функции
Создание функций-процедур
Написание функции-процедуры
Создание определенных пользователем функций для Excel
Объявление типов данных для аргументов функции
Использование функций-процедур в VBA
Использование инструмента Object Browser для нахождения
функций-процедур
Ввод описания функции-процедуры с помощью инструмента
Object Browser
Использование функций пользователя в рабочих листах Excel
Создание функций для Excel

Глава 8. Изменение порядка выполнения операторов в VBA
Простой выбор
Выбор единственной ветви перехода с помощью If...Then
Использование необязательных аргументов
Выбор ветви с помощью If...Then...Else
Сложный выбор
Вложенные операторы If...Then
Использование If...Then...Elself
Оператор Select...Case
Безусловный переход
Использование MsgBox для обеспечения возможности выбора

Глава 9. Дополнительные свойства процедур и функций
Раннее окончание процедур, функций и целых программ
Использование оператора Exit
Использование оператора End
Дополнительные свойства необязательных аргументов
Задание типа необязательного аргумента
Задание значения по умолчанию для необязательных аргументов
Управление передачей аргументов
Передача аргументов по ссылке и по значению
Определение способа передачи аргумента
Рекурсия
Примеры рекурсивных функций
Как избежать случайной рекурсии и других проблем

Глава 10. Объекты и коллекции
Объекты
Свойства объекта
Методы объекта
Классы объекта
Использование объектов
Использование свойств объектов
Использование методов объекта
Объявление объектных переменных
Объект в выражениях
Ссылка на объекты с помощью With...End With
Работа с коллекциями объектов и контейнерами объектов
Добавление к коллекциям
Ссылка на конкретные объекты в коллекции или контейнере
Использование Object Browser с объектами, методами и свойствами

Глава 11. Повторение действий в Visual Basic: циклы
Команды организации циклов
Повторение цикла фиксированное число раз: циклы For
Использование цикла For...Next
Использование For...Next с возрастающим счетчиком
Использование For...Next с убывающим счетчиком
Цикл For Each...Next
Циклы Do
Как прервать выполнение макроса или процедуры
Использование циклов, тестирующих условия до выполнения
тела цикла
Циклы Do While
Циклы Do Until
Использование циклов, тестирующих условия после выполнения
тела цикла
Циклы Do...Loop While
Циклы Do...Loop Until
Вложенные циклы
Вложение циклов For
Вложенные циклы Do

Глава 12. Массивы
Размерность массива
Одномерные массивы
Многомерные массивы
Статические и динамические массивы
Оператор Option Base
Объявление массивов
Использование массивов
Использование ReDim с динамическими массивами
Функции LBound и UBound
Использование Erase для очистки или удаления массивов
Использование массивов в качестве аргументов процедур и функций

Глава 13. Управление файлами с помощью Visual Basic for Applications
Управление файлами
Что такое управление файлами
Возможности VBA по управлению файлами
Атрибуты файла
Получение атрибутов файла
Изменение атрибутов файла
Как находить файлы
Использование функции Dir для нахождения файлов
Использование встроенных диалоговых окон Excel для получения
имен файлов
Использование метода GetOpenFilename
Использование метода GetSaveAsFilename
Использование встроенных диалоговых окон Word для получения
имен файлов
Использование Word-диалогового окна Открыть
Использование Word-диалогового окна Save As
Работа с дисками и папками
Получение пути текущей папки и буквенной метки диска
Изменение текущей папки
Изменение текущего диска
Создание дисковых папок
Удаление дисковых папок
Копирование и удаление файлов
Копирование файлов
Удаление файла
Переименование или перемещение файлов
Получение информации о файлах
Получение времени и даты создания/модификации файла
Получение длины файла

Глава 14. Элементы диалоговых окон
Формы пользователя
Свойства объекта UserForm
Методы объекта UserForm
Синтаксис метода Show
События и событийные процедуры
Примеры программ модуля класса формы
Элементы управления
Использование Toolbox (панели элементов)
Добавление к форме элементов управления
Редактирование элементов управления на форме
Выбор элементов управления
Перемещение элементов управления
Изменение размеров элементов управления
Копирование, вставка и удаление элементов управления
Редактирование или форматирование заголовков элементов
управления
Управление последовательностью перехода
Задание свойств формы и элементов управления в режиме разработки

Глава 15. Примеры создания приложений
Приложение для Excel
Задача
Интерфейс
Что должен уметь пользователь?
Что должно позволять диалоговое окно?
База данных для макроса
Начнем, не спеша
Разработка диалогового окна
Приложение для Word
Задача
Интерфейс
Начнем, не спеша
Вспомогательные программы
Печать бланков
Займемся интерфейсом
Печать извещений с данными из таблицы

Приложение к главе 14
События объектов UserForm
Activate
Синтаксис
Initialize
Синтаксис
QueryClose
Синтаксис
Resize
Синтаксис
Terminate
Синтаксис
События объектов управления
AddControl
Синтаксис
AfterUpdate
Синтаксис
BeforeUpdate
Change
Синтаксис
Click
Синтаксис
DblClick
Синтаксис
Enter
Синтаксис
Exit
Синтаксис
KeyDow, KeyUp
Синтаксис
KeyPress
Синтаксис
Layout
Синтаксис
MouseDown, MouseUp
MouseMove
Синтаксис
RemoveControl
Синтаксис
Scroll
Синтаксис
SpinDown, SpinUp
Синтаксис
Zoom