- •Что такое Visual Basic for Applications
- •Автоматизация среды Excel
- •Запись простого макроса
- •Выполнение макросов
- •Просмотр кода макроса
- •Редактирование кода макроса
- •Ограниченность макросов
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Назначение макросам комбинаций клавиш
- •Где хранить макросы
- •Создание личной книги макросов
- •Сохранение макросов в личной книге макросов
- •Выполнение макросов из личной книги макросов
- •Редактирование макросов в личной книге макросов
- •Удаление макросов из личной книги макросов
- •Назначение макросов командным кнопкам
- •Назначение макроса графическим изображениям
- •Назначение макросов кнопкам панелей инструментов
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Введение в процесс разработки приложений
- •Кто будет использовать приложение
- •Откуда будут поступать данные для приложения
- •Где и как будут храниться данные, полученные с помощью приложения
- •Как данные будут обрабатываться приложением
- •Вид выходных данных
- •Типы элементов управления
- •Вставка элементов управления в рабочий лист
- •Форматирование элементов управления
- •Имена элементов управления
- •Экранные формы
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Модуль: дом для кода vba
- •Обзор процедур
- •Создание процедур
- •Выполнение процедуры
- •Сохранение изменений в модуле
- •Переменные
- •Типы данных
- •Объявление переменных
- •Соглашения об именах переменных
- •Массивы
- •Присвоение значений переменным
- •Использование констант
- •Область видимости переменных и констант
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Функция MsgBox
- •Функция InputBox
- •Метод InputBox
- •Именование аргументов
- •Объединение текстовых строк
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Управление выполнением приложения
- •Оператор If
- •Оператор Select Case
- •Использование встроенных диалоговых окон Excel
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Оператор For…Next
- •Оператор Do... Loop
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Что такое объект
- •Объекты, свойства и методы
- •Объектная модель Excel
- •Пять наиболее часто используемых объектов
- •Как понимать иерархию объектной модели
- •Ссылка на объекты в коде vba
- •Работа с объектами
- •Задание свойств объекта
- •Использование методов
- •Справочная информация о свойствах и методах
- •Переменные-объекты
- •1: Sub ПримерПеремОбъекта()
- •Коллекции
- •Метод Add
- •Свойство Count
- •1: Sub КоличРабЛистов()
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Объект Application
- •Использование встроенных функций Excel
- •Свойства и методы объекта Application
- •Объект Workbook
- •Объект Worksheet
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Описание объекта Range
- •Свойства объекта Range
- •Методы объекта Range
- •Использование оператора With
- •Оператор For Each
- •Использование объекта Range
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Панели инструментов
- •Просмотр кода
- •Использование справочной системы
- •Просмотр объектов
- •Параметры редактора Visual Basic
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Тестирование и отладка как этап разработки приложений
- •Отладка
- •Режим останова
- •Использование окна Immediate
- •Просмотр значений в окне Immediate
- •Пошаговое выполнение программ
- •Наблюдение за переменными
- •Исправление ошибок
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Понятие об обработке ошибок
- •Перехват ошибок
- •Написание процедуры обработки ошибся
- •Выход из обработчика ошибок
- •Пример обработчика ошибок
- •Централизованный обработчик ошибок
- •Вопрос и ответы
- •Практикум
- •Упражнение
- •Вставка экранных форм в приложения
- •Свойства экранной формы
- •Выполнение экранной формы
- •Вставка элементов управления в экранную форму
- •Свойства элементов управления
- •Свойства командных кнопок
- •Свойства переключателей
- •Блокировка элементов управления
- •Экранные подсказки к элементам управления
- •Задание порядка обхода элементов формы
- •Назначение быстрых клавиш элементам формы
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Инициализация значений экранной формы
- •Вызов экранной формы
- •Управление поведением формы
- •Проверка вводимых данных
- •Сохранение данных, введенных в форму
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Настройка панелей инструментов
- •Создание панелей инструментов
- •Процедуры, управляющие панелями инструментов
- •Создание панели инструментов
- •Удаление панели инструментов
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Способы изменения меню
- •Программная работа с меню
- •Добавление пунктов и команд меню
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Создание диаграмм
- •Запись макроса построения диаграмм
- •Код макроса
- •Изменение кода макроса
- •Усовершенствованная процедура построения диаграмм
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Работа со сводной таблицей
- •Основы сводных таблиц
- •Запись макроса для создания сводной таблицы
- •Исследование кода макроса
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Базы данных, доступные из Excel
- •Средства доступа к внешним данным
- •Использование ms Query
- •Код записанного макроса
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Что такое ado
- •Объекты доступа к базам данных
- •Использование ado
- •Создание ссылки на библиотеку ado
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Вставка полей в экранную форму
- •Перемещение по записям
- •Редактирование данных
- •Добавление средства поиска
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Что такое автоматизация
- •Основы автоматизации
- •Ссылка на библиотеку объектов приложения-сервера
- •Просмотр библиотеки объектов
- •Создание экземпляра приложения-сервера
- •Использование объектов Microsoft Word
- •Вопросы и ответы
- •Практикум
- •Упражнение
- •Автоматическое выполнение процедур
- •Процедуры, выполняемые при наступлении событий
- •Создание надстроек Excel
- •Упражнение
- •Приложение. Ответы Ответы к 1-му часу Тесты
- •Ответы ко 2-му часу Тесты
- •Ответы к 3-му часу Тесты
- •Ответы к 4-му часу Тесты
- •Упражнение
- •Ответы к 5-му часу Тесты
- •Упражнение
- •Ответы к 6-му часу Тесты
- •Упражнение
- •Ответы к 7-му часу Тесты
- •Упражнение
- •Ответы к 8-му часу Тесты
- •Упражнение
- •Ответы к 9-му часу Тесты
- •Упражнение
- •Ответы к 10-му часу Тесты
- •Упражнение
- •Ответы к 11-му часу Тесты
- •Упражнение
- •Ответы к 12-му часу Тесты
- •Упражнение
- •Ответы к 13-му часу Тесты
- •Упражнение
- •Ответы к 14-му часу Тесты
- •Ответы к 15-му часу Тесты
- •Упражнение
- •Ответы к 16-му часу Тесты
- •Упражнение
- •Ответы к 17-му часу Тесты
- •Упражнение
- •Ответы к 18-му часу Тесты
- •Упражнение
- •Ответы к 19-му часу Тесты
- •Упражнение
- •Ответы к 20-му часу Тесты
- •Упражнение
- •Ответы к 21-му часу Тесты
- •Упражнение
- •Ответы к 22-му часу Тесты
- •Упражнение
- •Ответы к 23-му часу Тесты
- •Упражнение
- •Ответы к 24-му часу Тесты
- •Упражнение
Практикум
С помощью тестов и упражнений вы проверите, насколько хорошо усвоили изложенный материал. Ответы на вопросы смотрите в Приложении.
Тесты
-
Как можно объединить несколько строк?
-
Какой тип данных возвращаемого значения окна сообщения?
-
Какой тип данных возвращаемого значения метода InputBox?
-
Какие установки можно задать для окна сообщений с помощью аргумента
-
Истинно или ложно следующее утверждение: в VBA аргументы операторов и функций идентифицируются только своим местоположением в списке
Упражнение
Создайте процедуру с именем ВашИнфо. Эта процедура должна выполнять следующие задачи.
-
Отобразить три окна ввода. Первое окно предназначено для ввода имени пользователя. Во втором окне надо ввести название города, где живет пользователь, а в третьем - возраст пользователя.
-
Отобразить введенную в трех окнах ввода информацию в одном окне сообщения.
1 На протяжении всей книги предполагается, что пользователь работает с русской версией Excel 2000, поэтому, несмотря на англоязычность VBA, кнопки в создаваемых окнах автоматически будут иметь названия на русском языке. - Прим. ред.
6-й час. Логика условных операторов
В предыдущем часе мы изучили средства, с помощью которых пользователь может вводить данные в приложение и присваивать их переменным. Что с этими данными делать дальше? Можно организовать различные потоки1 выполнения приложения в зависимости от введенной пользователем информации. Такое ветвление выполнения приложения осуществляется с помощью условных (логических) операторов, на которых мы сфокусируем свое внимание в этом часе.
В этом часе будут рассмотрены следующие вопросы.
-
Управление потоками выполнения приложения.
-
Использование оператора If.
-
Применение оператора Select Case.
-
Вывод на экран встроенных диалоговых окон Excel.
Управление выполнением приложения
Предположим, ваше приложение вывело на экран окно сообщения с двумя кнопками Да и Нет. Допустим даже, вы знаете, что должно делать приложение, если пользователь щелкнет на кнопке Да, и что - когда щелкнет на кнопке Нет. Другими словами, вы понимаете, что при разном выборе пользователя должны выполняться различные последовательности операторов. Чтобы организовать такое ветвление выполнение программы, используются условные операторы. Условные операторы проверяют некоторое логическое условие (которое может принимать значение ИСТИНА или ЛОЖЬ) и в зависимости от результатов проверки выполняют те или иные операторы.
В условных операторах используются логические условия для управления потоком выполнения программы. Логические условия позволяют выбрать различные пути выполнения программы в зависимости от значения определенной переменной, информации, введенной пользователем, сделанных установок в диалоговых окнах, и т.п. Применяя логические условия, вы создаете некий тест, а затем, в зависимости от результатов этого теста, приложение выполняет то или иное действие.
Для создания логических условий часто используются операторы сравнения. Эти операторы сравнивают, например, значение содержимого некоторой ячейки с заданным значением или значением, возвращаемым какой-либо функции. Выражение, в котором используются операторы сравнения, в зависимости от результата сравнения принимают значения ИСТИНА или ЛОЖЬ. С операторами сравнения вы встречались при работе с некоторыми функциями Excel, такими как функция Если. В табл. 6.1 приведены возможные операторы сравнения.
Таблица 6.1. Оператор сравнения
Оператор сравнения |
Что обозначает |
= |
Равно |
<> |
Не равно |
> |
Больше чем |
>= |
Больше или равно |
< |
Меньше чем |
<= |
Меньше или равно |
Иногда требуется найти значение выражения, содержащего несколько логических условий. В этом случае применяются логические операторы, соединяющие отдельные условия. В табл. 6.2 описаны логические операторы, которые поддерживает VBA. Примеры использования логических операторов приведены далее в этом часе.
Таблица 6.2. Логические операторы
Логический оператор |
Описание |
And (И) |
Если оба условия, соединенные этим оператором, имеют значение ИСТИНА, то результат - ИСТИНА, в противном случае - ЛОЖЬ |
Or (Или) |
Если хотя бы одно из условий, соединенных этим оператором, имеет значение ИСТИНА, то результат - ИСТИНА, в противном случае - ЛОЖЬ |
Not (Нет) |
Если логическое выражение имеет значение ЛОЖЬ, то результат применения к нему этого оператора - ИСТИНА. Если логическое выражение имеет значение ИСТИНА, ТО результат применения оператора - ЛОЖЬ |
Xor (исключающее Или) |
Если одно и только одно из условий, соединенных этим оператором, имеет значение ИСТИНА, то результат - ИСТИНА. Если оба условия имеют значения ИСТИНА или ЛОЖЬ, то результат - ЛОЖЬ. |