
- •Что такое 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-му часу Тесты
- •Упражнение
Ограниченность макросов
В Excel многие процедуры могут быть автоматизированы с помощью макросов, но макросы имеют и ограничения. С помощью макросов вы не сможете сделать, например, следующее.
-
Ввести какую-либо информацию во время выполнения макроса.
-
Выполнить различные действия в зависимости от содержимого конкретной ячейки.
-
Отобразить диалоговые окна Excel, например Сохранение документа.
-
Отобразить и использовать формы ввода данных.
Эти ограничения приводят к необходимости создания собственно кода VBA. В следующем часе мы изучим работу с макросами более подробно.
Резюме
В этом часе мы рассмотрели возможности использования и процесс создания макросов. Вы узнали, как записывать, выполнять и редактировать макросы.
Теперь вы готовы к "погружению" в более глубокие темы использования макросов, чему посвящен следующий час. Здесь вы узнаете, как и почему макросы являются первой ступенью в разработке приложений с использованием VBA.
Вопросы и ответы
Вопрос. Почему для программирования в VBA необходимо знать, как работать с макросами?
Ответ. Знание макросов необходимо по двум основным причинам. Во-первых, знание макросов является основой знания VBA. Во-вторых, в дальнейшем вы увидите, что разработку приложений VBA часто эффективно начинать с записи макроса, а затем изменить его код нужным образом.
Вопрос. Если раньше никогда не приходилось программировать, возникнут ли большие проблемы при изучении VBA?
Ответ. Нет! Основное условие для начала программирования на VBA - умение работать с Excel. Эта книга предлагает путь изучения VBA, опираясь на ваши знания Excel.
Практикум
С помощью тестов и упражнений вы проверите, насколько хорошо усвоили изложенный материал. Ответы на вопросы смотрите в Приложении.
Тесты
-
Язык VBA применяется только в Excel?
-
На чем основывается язык VBA?
-
Истинно или ложно следующее утверждение: встроенные функции Excel можно использовать в приложениях VBA?
-
При редактировании кода макроса вы работаете в ______________ (три слова).
-
Назовите два ограничения записанных макросов.
Упражнение
Создайте новый макрос (назовите его Заголовок) для ввода вашей фамилии в ячейку A1 и текущей даты в ячейку В1. Этот макрос должен также установить размер шрифта в 14 пунктов в ячейках A1 и В1. После записи макроса просмотрите его код.
2-й час. Работа с макросами
В 1-м часе "Знакомство с Visual Basic for Applications" мы рассмотрели основы работы с макросами. В этом часе мы сосредоточим внимание на более сложных темах, связанных с макросами. Напомню, что мы изучаем макросы для дальнейшего их применения при написании кодов VBA. Позднее, при создании приложений VBA, вы будете использовать технические приемы, описанные в этом часе.
В этом часе будут рассмотрены следующие вопросы.
-
Назначение макросам комбинаций клавиш.
-
Где можно хранить макросы.
-
Создание личной книги макросов.
-
Назначение макросов кнопкам и графическим объектам.
Назначение макросам комбинаций клавиш
Для более эффективного использования макросов им можно назначать комбинации клавиш. Назначенная комбинация клавиш - это такой набор клавиш, при нажатии которых выполняется какая-либо команда или макрос. Например, для выполнения команды копирования вы применяете известную любому пользователю комбинацию клавиш <Ctrl+C>. Excel позволяет назначать комбинации клавиш любому макросу. Назначаемая комбинация клавиш должна содержать клавишу <Ctrl> и клавишу с любой буквой по вашему выбору. После назначения макросу комбинации клавиш вы можете использовать ее для выполнения макроса наравне с командой Макрос > Макросы из меню Сервис.
Назначаемые вами комбинации клавиш отменяют любые используемые в Excel по умолчанию или ранее назначенные комбинации клавиш. Другими словами, если вы назначите своему макросу комбинацию клавиш <Ctrl+C>, то теперь при нажатии этой комбинации не будет выполняться привычная всем команда копирования, а будет выполняться ваш макрос. Чтобы избежать подобных "накладок" при назначении макросам комбинации клавиш, я советую вам распечатать список используемых в Excel комбинаций клавиш. Для этого выполните следующие действия.
-
В окне справочной системы Excel перейдите на вкладку Содержание.
-
В папке Использование сочетаний клавиш выделите книгу Сочетания клавиш.
-
Щелкните правой кнопкой мыши на книге Сочетания клавиш и в контекстном меню выберите команду Печать.
-
В открывшемся диалоговом окне Печать раздела установите переключатель Напечатать все содержимое текущего заголовка и щелкните на кнопке ОК.
Комбинацию клавиш можно назначить макросу как в процессе создания макроса, так и по окончании его записи. Если вы хотите назначить комбинацию клавиш в процессе создания макроса, то после выполнения команды Сервис > Макрос > Начать запись в секции Сочетание клавиш диалогового окна Запись макроса введите нужную букву в поле Ctrl+. Если вы не назначили комбинацию клавиш в процессе создания макроса, то можете это сделать в любое время. Например, чтобы назначить комбинацию клавиш макросу БольшойШрифт, созданному в 1-м часе, выполните такие действия.
-
Откройте рабочую книгу Час1, если она еще не открыта.
В зависимости от уровня безопасности, установленного в вашей системе, при открытии рабочей книги вы можете увидеть окно предупреждения, сообщающее, что открываемая книга содержит макросы, и предлагающее на ваш выбор отключать или не отключать макросы. Щелкните на кнопке Не отключать макросы.
-
Выполните команду Сервис > Макрос > Макросы. Появится диалоговое окно Макрос.
-
В списке макросов выделите макрос БольшойШрифт и щелкните на кнопке Параметры. Откроется диалоговое окно Параметры макроса (рис. 2.1).
Рис. 2.1. С помощью этого диалогового окна можно назначить макросу комбинацию клавиш
-
Для задания комбинации клавиш в поле Ctrl+ введите букву, например b.
Хотя формально нет никаких ограничений на использование в комбинациях клавиш русских букв, рекомендуем назначать буквы при установленной английской раскладке клавиатуры, так как комбинации клавиш с русскими буквами не всегда срабатывают. - Прим. ред.
-
Щелкните на кнопке ОК. Закройте диалоговое окно Макрос.
-
В ячейку A3 введите слово Тест.
-
Выделите ячейку A3 и нажмите комбинацию клавиш <Ctrl+B>.
Если вы хорошо знакомы с комбинациями клавиш, назначенных в Excel по умолчанию, то знаете, что комбинация <Ctrl+B> применяет к содержимому выделенных ячеек полужирное начертание. В нашем случае эта комбинация клавиш назначена исполняемому макросу, поэтому изменено встроенное в Excel назначение этой комбинации. Такая замена будет действовать, пока открыта данная книга. Отметим, что Excel не мешает такому переназначению клавиш и даже не предупреждает об этом. По-видимому, Excel предполагает, что вы знаете, что "творите"!