- •Что такое 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-му часу Тесты
- •Упражнение
Форматирование элементов управления
Вам, конечно, уже не терпится узнать, как можно использовать элементы управления, помешенные на рабочий лист. Можно назначить им макросы, как описано во 2-м часе. Но можно найти им и другое применение. Большинство элементов управления можно использовать для ввода значений в рабочий лист. Назначение задания элементу управления осуществляется путем его форматирования. Форматирование элемента управления позволяет изменить его внешний вид и определить его поведение. Для форматирования элемента управления выполните следующие действия.
-
Выделите флажок, помещенный на рабочий лист.
-
Щелкните на нем правой кнопкой мыши и в контекстном меню выберите команду Формат объекта. Откроется диалоговое окно Формат элемента управления.
-
Перейдите на вкладку Элемент управления (рис. 3.11).
-
В поле Связь с ячейкой введите А1 и щелкните на кнопке ОК.
-
Щелкните вне области флажка для снятия с него выделения.
-
Щелкните на флажке, чтобы поместить на него "галочку" (это называется установить флажок). В ячейке А1 появится слово ИСТИНА.
-
Еще раз щелкните на флажке, чтобы удалить с него "галочку" (это действие называется снять флажок). В ячейке А1 появится слово ЛОЖЬ.
Для тестирования состояния ячейки А1 можно использовать функцию Excel ЕСЛИ. Затем, в зависимости от значения этой ячейки, можно выполнить разные действия или вычисления. Например, если при установке флажка надо увеличить значение ячейки А4 на 20%, то можно воспользоваться формулой =ЕСЛИ(А1=ИСТИНА;А4*1,2;А4).
-
Выделите на рабочем листе полосу прокрутки, созданную ранее.
-
Щелкните на ней правой кнопкой мыши и в контекстном меню выберите команду Формат объекта. Отобразится диалоговое окно Формат элемента управления.
-
Перейдите на вкладку Элемент управления (рис. 3.12).

Рис. 3.11. Это диалоговое окно позволяет связать элемент управления и ячейку рабочего листа

Рис. 3.12. Вкладка элемент управления имеет разный вид для различных элементов управления
-
В поле Связь с ячейкой введите A3 и щелкните на кнопке ОК.
-
Щелкните вне полосы прокрутки, чтобы снять с нее выделение.
-
Щелкните на полосе прокрутке на кнопке со стрелкой, направленной вправо. Значение в ячейке A3 увеличится на единицу. Продолжая щелкать на этой кнопке, вы увеличиваете значение в ячейке A3.
-
Сохраните рабочую книгу под именем Элементы управления и закройте ее.
Имена элементов управления
При создании элементов управления Excel присваивает им невыразительные названия, подобные Флажок 1 или Кнопка 7. Когда вы начнете писать код приложения, где используются элементы управления, вы должны будете отслеживать их применение с помощью имен. Поэтому желательно назначить элементам управления содержательные и узнаваемые имена. Многие разработчики при задании имен придерживаются специального соглашения об именах. В соответствии с этим соглашением в имя элемента управления вставляется префикс из трех букв, описывающий тип этого элемента. Например, если вы хотите дать флажку имя Приоритет, то в соответствии с указанным соглашением имя флажка будет записано как chkПриоритет, где префикс chk указывает на элемент управления флажок. В табл. 3.1 приведены общеупотребительные префиксы для имен элементов управления. (При написании кода VBA вам обязательно придется столкнуться с английскими названиями элементами управления, поэтому в таблице даны русские и английские названия элементов управления. - Прим. ред.)
Таблица 3.1. Рекомендуемые префиксы для имен элементов управления
|
Выключатель (ToggleButton) |
tog |
|
Командная кнопка (Command Button) |
cmb или btn |
|
Набор вкладок (TabStrip) |
tab |
|
Набор страниц (MultiPage) |
mul |
|
Надпись (Label) |
lbl |
|
Переключатель (Option Button) |
opt |
|
Поле (Text Box) |
txt |
|
Поле со свертыванием (RefEdit) |
ref |
|
Поле со списком (Combo Box) |
cbo |
|
Полоса прокрутки (Scrollbar) |
hsb и vsb, соответственно для горизонтальной и вертикальной полос прокрутки |
|
Рамка (Group Box) |
grp или fra |
|
Рисунок (Image) |
img |
|
Список (List Box) |
lst |
|
Счетчик (Spinner) |
spn |
|
Флажок (Check Box) |
chk |
Командная кнопка и рамка имеют по два возможных префикса из-за того, что в Excel и Visual Basic они имеют разные названия. Командная кнопка в Excel называется button (кнопка), а в Visual Basic - command button (командная кнопка), в Excel рамка имеет название group box (групповая рамка) и frame (фрейм, рамка) - в Visual Basic. Наиболее употребительные для них префиксы соответственно cmd и fra.
Имена элементам управления задаются точно так же, как ячейкам и диапазонам ячеек, - вводом имени в поле Имя в строке формул. Для задания имени элементу управления выполните следующие действия.
-
Щелкните правой кнопкой мыши на элементе управления, чтобы выделить его.
-
Щелкните в поле Имя строки формул (вы, вероятно, увидите в этом поле текущее название элемента управления наподобие Полоса прокр. 1).
-
Введите имя элемента управления (например, hsbПример) и нажмите клавишу <Enter>.
