- •Что такое 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-му часу Тесты
- •Упражнение
Вопросы и ответы
Вопрос. При работе с панелями инструментов я использовал коллекции CommandBars и Controls. Эти же коллекции применяются и при работе со строками меню. Почему?
Ответ. В Excel (или шире - в Microsoft Office) строки меню и панели инструментов - это два элемента одной коллекции CommandBars (Командные панели). В свою очередь пункты меню, элементы меню (команды) и кнопки панелей инструментов также являются членами одной коллекции Controls (Элементы управления). Если подумать, то в таком объединении разнородных, на первый взгляд, элементов есть определенный смысл: и строка меню, и панель инструментов - это всего лишь контейнеры-панели, содержащие разнообразные элементы управления.
Вопрос. Как можно заблокировать какой-либо пункт меню или команду при выполнении своего приложения?
Ответ. Очень просто! Положите для пункта меню или команды, которые хотите заблокировать, значение свойства Enabled равным False. И все!
Практикум
С помощью тестов и упражнений вы проверите, насколько хорошо усвоили изложенный материал. Ответы на вопросы смотрите в Приложении.
Тесты
-
Какой метод используется для создания меню?
-
Какое свойство пользовательской команды (элемента меню) назначает процедуру, выполняемую при выборе этой команды?
-
Какой тип элемента управления задает пункт меню?
-
Как удалить строку меню с помощью кода VBA?
-
Какое диалоговое окно должно быть открыто при настройке меню?
-
Для создания командной панели вы используете метод Add. Какой аргумент этого метода (и как) надо задать, чтобы командная панель автоматически удалялась при закрытии приложения, содержащего эту панель?
-
Как вывести на экран строку меню?
Упражнение
Напишите процедуру, которая создавала бы и выводила на экран строку меню (с именем Пример17), содержащую пункты Файл, Правка и Справка. Напишите еще одну процедуру для удаления этой строки меню. На свободном рабочем листе создайте две командные кнопки, которые выполняли бы эти процедуры. Выполните и протестируйте процедуры.
18-й час. Диаграммы
Построение диаграмм - одно из самых популярных средств Excel. Разработчики часто используют это средство Excel построения диаграмм в своих приложениях. В этом часе мы запишем макрос, создающий диаграмму, а затем исследуем и изменим код этого макроса в редакторе Visual Basic.
В этом часе будут рассмотрены следующие вопросы.
-
Запись процесса создания диаграммы.
-
Исследование кода макроса.
-
Изменение кода макроса.
-
Усовершенствование процедуры построения диаграмм.
Создание диаграмм
Любой пользователь Excel знаком с процессом построения диаграмм. А если он знает, как построить диаграмму, то может и автоматизировать процесс построения диаграмм. "Как?", - спросите вы. Очень просто: запишите макрос, выполняющий весь процесс создания диаграммы, а затем усовершенствуйте код этого макроса.
Запись макроса построения диаграмм
Последуем своему же совету и запишем макрос, выполняющий построение диаграммы. Но сначала надо создать таблицу данных, на основе которых будет построена диаграмма, и заранее решить, диаграмму какого типа мы будем строить, и продумать способы ее форматирования.
Для чистоты эксперимента закройте все открытые рабочие книги и откройте новую рабочую книгу. В новой книге создайте таблицу данных, показанную на рис. 18.1. По этим данным построим круговую диаграмму.
Выделите диапазон А1:В6 и выполните команду Сервис > Макрос > Начать запись. В диалоговом окне Запись макроса введите имя макроса КруговаяДиаграмма, а в списке Сохранить в выберите пункт Эта книга. Теперь все готово к началу записи макроса. Щелкните на кнопке ОК.
Рис. 18.1. Таблица данных, на основе которой будет построена круговая диаграмма
Рис. 18.2 Диаграмма, созданная с помощью мастера диаграмм
Запустите мастера диаграмм и в первом диалоговом окне мастера выберите круговую диаграмму. Пропустите второе окно мастера, щелкнув на кнопке Далее. В третьем диалоговом окне мастера перейдите на вкладку Подписи данных и установите переключатель Доля. Щелкните на кнопке Далее. В последнем окне мастера укажите, что диаграмму следует поместить на существующем рабочем листе Лист1. Закройте диалоговое окно мастера, щелкнув на кнопке Готово.
На этом построение диаграммы не заканчивается. Теперь отформатируем заголовок диаграммы. Дважды щелкните на заголовке - откроется диалоговое окно Формат названия диаграммы. Прейдите на вкладку Шрифт, задайте полужирное курсивное начертание шрифта и установите размер шрифта 14 пунктов. Закройте диалоговое окно Формат названия диаграммы и остановите запись макроса. Построенная диаграмма показана на рис. 18.2.
Теперь исследуем код записанного макроса и посмотрим, как можно его усовершенствовать.