Введение

НЕДЕЛЯ 1. ОБЗОР

День 1-й. Начинаем
Макросы и языки программирования
Что такое макрос
Краткая история языка VBA
Зачем изучать язык VBA
Как записать новый макрос
Создание начальных условий
Начало записи макроса
Пробуем записать первый макрос
Создаем начальные условия
Выбираем имя и место хранения макроса
Записываем действия
Останавливаем запись
Текст макроса
Запуск макроса
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

День 2-й. Создаем и редактируем простой
макрос
Знакомство со средой Visual Basic For
Applications
Что такое модули
Знакомство с редактором Visual Basic
Редактируем макрос
Открываем модуль
Как найти записанный макрос
Из чего состоит записанный макрос
Редактируем текст макроса
Перемещение или копирование макроса из
одного модуля в другой
Сохранение и импорт модулей в виде
текстового файла
Экспорт модуля
Импорт модуля
Удаление модулей из проекта
Пишем макрос и процедуру
Создание и переименование модуля
Выбор существующего модуля
Пишем текст процедуры
Запуск процедуры при редактировании
Вывод сообщений пользователю
Сообщения об ошибках при написании,
редактировании и запуске процедуры
Синтаксические ошибки
Ошибки при выполнении
Печать текста программы
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

День 3-й. Типы данных, переменные и
константы
Познакомимся с типами данных
Дата
Числа
Текстовые строки
Логические значения
Данные типа Variant
Понятие о переменных
Что такое переменная
Выбор имени переменной
Создание переменных
Область видимости: какие переменные
доступны
Время жизни переменной: как долго
сохраняется значение
Запрет неявного определения переменных
Указание типа переменной
Понятие о константах
Создаем поименованную константу
Область видимости констант
Правила написания непоименованных
констант
Указание типа константы
Предопределенные константы
Доступ к внутренним константам с
помощью окна Object Browser
Ввод данных пользователя в вашу
процедуру
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

День 4-й. Операторы и выражения
Понятие об операторах и выражениях
Совместимость типов данных
Автоматическое преобразование типов
Преобразование числовых типов
Преобразование строк и чисел
Преобразования булевых величин
Преобразование дат
Оператор присваивания
Арифметические операторы
Сложение
Вычитание
Умножение
Деление
Целочисленное деление
Деление по модулю
Возведение в степень
Операторы сравнения
Сравнение строк
Оператор Like
Оператор Is
Логические операторы
Таблицы истинности
Оператор And
Оператор Or
Оператор Not
Оператор Xor
Оператор Eqv
Оператор Imp
Операторы конкатенации строк
Использование конкатенации строк
Операторы конкатенации строк
Старшинство операторов и вычисление
сложных выражений
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

День 5-й. Функции Visual Basic и Excel
Понятие о функциях
Использование функций в выражениях
Понятие об аргументах функции и о
результате функции
Игнорирование результата функции
Использование поименованных аргументов
функции
Использование функций VBA
Математические функции
Функции преобразования данных
Строковые функции
Функции для получения информации о
диске, каталоге и другие
Использование функций Excel
Использование окна Object Browser для
вызова функции
Просмотр и вставка функций Visual
Basic
Просмотр и использование функций Excel
Использование функций для управления
строками
Удаление лишних символов пробелов
Определение длины строки
Сравнение и поиск строк
Разбиение строки на части
Использование символов, которые нельзя
набрать на клавиатуре
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

День 6-й. Процедуры-функции и нестандартные
функции
Понятие о процедуре-функции и о
нестандартной функции
Создание процедуры-функции
Пишем процедуру-функцию
Создание нестандартных функций для
Excel
Объявление типа данных для результата
функции
Объявление типа данных для аргументов
функции
Создание необязательных аргументов
Определение значения по умолчанию для
необязательных аргументов
Как VBA передает аргументы
Использование процедуры функции в Visual
Basic for Application
Использование окна Object Browser для
поиска вашей процедуры функции
Вставка описания процедуры-функции в
окне Object Browser
Использование определенных пользователем
функций в рабочих листах Excel
Создание процедур функций
Разработка функции для Excel
Понятие о рекурсии
Анализ работы рекурсивной функции
Как избежать нежелательной рекурсии, а
также других проблем
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

День 7-й. Объекты и коллекции
Понятие об объектах
Свойства объекта
Методы объектов
Классы объектов
Использование объектов
Использование свойств объекта
Как пользоваться методами объектов
Объявление объектных переменных
Использование объектов в выражениях
Доступ к объектам с помощью
конструкции With... End With
Коллекции объектов и контейнеры объектов
Включение в коллекцию нового элемента
Как обратиться к объекту в коллекции
или в контейнере
Объекты, методы и свойства в окне Object
Browser
Резюме
Вопросы и ответы
Мастерская
Контрольные вопросы
Упражнения

НЕДЕЛЯ 2. ОБЗОР

День 8-й. Принятие решения в Visual Basic
for Applications
Изучение команд принятия решений в VBA
Осуществление простого выбора
Выбор с помощью оператора If...Then
Выбор между ветвями с помощью
If..Then...Else
Осуществление сложного выбора
Вложенные инструкции If...Then
Использование If...Then...ElseIf
Применение инструкции Select Case
Безусловное ветвление
Раннее завершение процедур, функций и
программ
Использование инструкции Exit
Использование инструкции End
Выбор с помощью функции MsgBox
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

День 9-й. Циклы
Что такое циклические действия
Повторение фиксированное число раз:
циклы For
Применение цикла For...Next
Применение цикла For Each...Next
Повторение неопределенное число раз:
циклы Do
Как VBA проверяет определитель цикла
Циклы с проверкой условий перед
выполнением
Циклы с проверкой условий после
выполнения
Немедленное завершение циклов
Вложенные циклы
Вложенные циклы For
Вложенные циклы Do
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

День 10-й. Типы данных и переменных
Получение информации о переменных и
выражениях
Применение информационных функций
Visual Basic for Applications
Получение информации о типе данных в
переменной или в выражения
Специальные значения Empty и Null
Защитное программирование:
предотвращение ошибок
Проверка аргументов и других
внутренних значений
Проверка данных пользователя
Проверка данных, полученных не от
пользователя
Сохранение переменных в промежутках
между вызовами процедур и функций
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

День 11-й. Типы данных и классы объектов,
определяемые пользователем
Создание новых типов данных
Определение нового типа
Описание переменных определенного
пользователем типа
Использование переменных определенного
пользователем типа
Создание новых классов объектов
Что такое модули классов
Проектирование класса объектов
Создание определяемого пользователем
класса
Применение нестандартного класса
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

День 12-й. Модульное программирование
Эффективное применение модулей
Создание библиотечной книги
Доступ к библиотеке процедур и функций
Расширенные правила видимости для
многомодульных программ
Области видимости Private и Public
Переопределение правил видимости языка
Visual Basic
Как избежать замкнутых ссылок
Префикс модуля
Структурное программирование
Вызов одной процедуры из другой
Программирование сверху вниз, или
Пошаговая детализация
Модульная организация программного
проекта
Обмен данными между процедурами с
помощью аргументов
Когда и с какой целью используются
процедуры со списком аргументов
Как создать список аргументов
процедуры
Применение процедур с аргументами
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

День 13-й. Управление файлами с помощью
Visual Basic
Понятие об управлении файлами
Что такое управление файлами
Средства Visual Basic для управления
файлами
Атрибуты файла
Знакомство с атрибутами файлов
Чтение атрибута файла
Изменение атрибута файла
Как получить имя файла
Поиск файлов с помощью функции Dir
Ввод имени файла с помощью стандартных
окон Excel
Диски и папки
Определение пути к текущей папке и
буквы дисковода
Изменение текущей папки
Изменение дисковода
Создание папки
Удаление папки
Копирование и удаление файлов
Копирование файла
Удаление файла
Переименование или перемещение файлов
Получение информации о файле
Дата и время изменения
Длина файла
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

День 14-й. Массивы
Понятие о массивах
Что такое одномерные массивы
Что такое многомерные массивы
Статические и динамические массивы
Инструкция Option Base
Описание массивов
Использование массивов
Использование ReDim с динамическими
массивами
Функции LBound и UBound
Использование Erase для чистки и
удаления массива
Использование массивов в качестве
аргументов процедур и функций
Сортировка массивов
Поиск в массивах
Последовательный поиск
Бинарный поиск
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

НЕДЕЛЯ 3.ОБЗОР

День 15-й. Отладка VBA-программы
Распространенные типы ошибок
Режим прерывания
Переход в режим прерывания из окна
сообщения об ошибке
Точки останова
Инструкция Stop
Прерывание программы командой Step
Into
Прерывание программы нажатием клавиши
Выход из режима прерывания
Команда Step Into
Команда Step Over
Команды Step Out и Run To Cursor
Как пользоваться контрольными значениями
переменных
Как добавить контрольное выражение
Редактирование контрольного выражения
Удаление контрольного выражения
Быстрая проверка контрольного значения
Подсказки значений данных
Окно локальных переменных
Последовательность вызова процедур
Как пользоваться окном отладки
Использование инструкции Debug. Print
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

День 16-й. Создание настраиваемых
диалоговых окон
Знакомство с формами
Элементы управления
Использование форм для создания
диалоговых окон
Добавление нового объекта формы
Использование панели инструментов
Toolbox
Добавление элементов управления в
форму
Редактирование элементов управления
Управление последовательностью
перехода
Определение свойств формы и элемента
управления в режиме конструктора
Отображение форм с помощью VBA
Использование VBA с элементами
управления в форме
Создание процедур событий и других
программ формы
Создаем диалоговое окно
Диалоговое окно и его программа в
стандартном модуле
Использование элемента списка
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

День 17-й. Меню и панели инструментов
Управляющие панели
Типы управляющих панелей
Части управляющей панели
Типы элементов управления
Методы и свойства управляющей панели
Коллекция CommandBars
Объект CommandBar
Встроенные и нестандартные управляющие
панели
Нестандартные управляющие панели
Встроенные управляющие панели
Отображение списка встроенных
управляющих панелей
Объекты, методы и свойства элементов
управления
Коллекция CommandBarControls
Объект CommandBarControl
Встроенные элементы управления
Лицевые поверхности элементов
управления
Управление нестандартными и встроенными
управляющими панелями
Добавление новой управляющей панели
Сокрытие, отображение и
позиционирование управляющей панели
Удаление управляющей панели
Переустановка встроенной управляющей
панели
Работа с элементами управления
Добавление элемента управления в
управляющую панель
Именование или переименование элемента
управления
Указание процедуры события элемента
управления
Удаление элементов управления
Включение или отключение элемента
управления
Состояние элемента управления
Отыскание конкретных элементов
управления
Применение на практике: управляющая
панель типа меню
Применение на практике: управляющая
панель типа панели инструментов
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

День 18-й. Обработка ошибок
Стратегии обработки ошибок
Инструкция On Error GoTo
Инструкция Resume
О пределение типа ошибки, ее
местонахождения и текста сообщения
Искусственное создание ошибки и
создание собственных кодов ошибки:
инструкция Error
Использование объекта Err
Подведем итоги: примеры обработки
ошибок
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

День 19-й. Управление приложением Excel с
помощью VBA
Работа с объектами Workbook
Обращение к объекту Workbook
Открытие рабочей книги
Создание рабочей книги
Активизация рабочей книги
Сохранение рабочей книги
Закрытие рабочей книги
Работа с объектами Worksheet
Обращение к объекту Worksheet
Активизация рабочего листа
Создание нового рабочего листа
Переименование рабочего листа
Копирование и перемещение рабочего
листа
Удаление рабочего листа
Методы для обращения к диапазону
Использование метода Range
Использование метола Cells
Использование метода Offset
Другие методы и свойства для указания
диапазона
Работа с ячейками и диапазонами
Выбор ячейки или диапазона
Работа со значениями и формулами
Создание имени диапазона
Вырезание, копирование и очистка
данных
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

День 20-й. Работа с другими приложениями
Что такое Automation и OLE
Краткая история OLE
Как к этому приспособить VBA?
Определение типов объектных классов
Использование базы данных реестра
Использование утилиты Сведения о
системе
Добавление связанных и внедренных
объектов
Объекты Shape и OLEFormat
Использование метода AddOLEObject и
коллекции Shapes
Вставка нового внедренного объекта
Вставка существующего файла как
внедренного объекта
Вставка существующего файла как
связанного объекта
Коллекция OLEObjects
Работа со связанными и внедренными
объектами
Доступ к OLE-объектам
Использование свойств OLE-объекта
Использование методов OLE-объекта
Метод Update
Метод Verb
Использование автоматизации
Доступ к объектам автоматизации
Прямой доступ к объектам
Создание нового объекта автоматизации
Доступ к существующему объекту
автоматизации
Доступ к DLL из Visual Basic for
Application
Объявление DLL-процедур
Некоторые примеры использования DLL
Работа с приложениями, которые не
поддерживают OLE или автоматизации
Запуск другого приложения
Активизация запущенного приложения
Отправка кодов клавиш другому
приложению
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

День 21-й. Процедуры обработки событий и
надстройки
Что такое события и процедуры обработки
событий
Где хранятся процедуры обработки
событий
Имя и описание процедуры обработки
события
Аргументы процедуры обработки события
События объекта Application
События объектов приложения Excel
Событие Open
Событие BeforeClose
Событие Activate
Событие DeActivate
Событие BeforeDoubleClick
Событие Change
Событие Calculate
Другие события
Свойства и методы, связанные с событиями
Свойство OnWindow
Метод ОпКеу
Метод OnTime
Надстройки
Создание надстройки
Управление надстройками из Visual
Basic
Резюме
Вопросы и ответы
Коллоквиум
Тест
Упражнения

ПРИЛОЖЕНИЕ. ОТВЕТЫ
День 1-й
День 2-й
День 3-й
День 4-й
День 5-й
День 6-й
День 7-й
День 8-й
День 9-й
День 10-й
День 11-й
День 12-й
День 13-й
День 14-й
День 15-й
День 16-й
День 17-й
День 18-й
День 19-й
День 20-й
День 21-й
Предметный указатель