- •Что такое 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-му часу Тесты
- •Упражнение
Вопросы и ответы
Вопрос. Все ли Windows-приложения поддерживают технологию автоматизации?
Ответ. Нет, только те приложения, которые имеют для этого специальные средства.
Вопрос. Поддерживают ли автоматизацию приложения, работающие под DOS?
Ответ. Нет, такие приложения не могут поддерживать технологию автоматизации. Для управления DOS-приложениями попытайтесь воспользоваться методом SendKey, описание которого можно найти в справочной системе VBA.
Практикум
С помощью тестов и упражнений вы проверите, насколько хорошо усвоили изложенный материал. Ответы на вопросы смотрите в Приложении.
Тесты
-
Какой оператор применяется для создания экземпляра приложения-сервера?
-
Истинно или ложно следующее утверждение: кроме объектов Excel и VBA в окне просмотра объектов можно просматривать только объекты библиотек, на которые созданы ссылки?
-
В примере этого часа программа Excel играла роль ___________ приложения (приложения-___________).
-
Истинно или ложно следующее утверждение: Excel можно использоватьтолько как приложение-клиент?
-
Как установить ссылку на библиотеку объектов?
-
Истинно или ложно следующее утверждение: чтобы создать доступ к программе Word из другого приложения, надо применить технологию автоматизации?
-
Истинно или ложно следующее утверждение: все приложения Microsoft Office в той или иной степени поддерживают технологию автоматизации?
Рис. 23.5. Таблица данных Excel
Рис 23.6. Документ Word
Упражнение
Создайте таблицу данных Excel, как на рис. 23.5. Создайте текстовый документ Word, представленный на рис. 23.6. Вставьте в этот документ необходимые закладки. Создайте процедуру, которая копировала бы информацию из таблицы данных Excel и вставляла в соответствующие места документа Word.
24-й час. Выполнение процедур
В этом часе мы рассмотрим процедуры, которые выполняются при открытии и закрытии рабочих книг, а также при активизации рабочих листов. Excel предлагает несколько путей реализации таких процедур.
В этом часе будут рассмотрены следующие вопросы.
-
Использование процедур Auto_Open и Auto_Close.
-
Процедуры, выполняемые при наступлении определенных событий.
-
Создание надстроек Excel.
Автоматическое выполнение процедур
Часто возникают ситуации, когда какие-либо процедуры необходимо выполнить при открытии или закрытии рабочих книг. Excel предлагает простой способ выполнения таких процедур. Если, например, процедура должна выполняться при открытии книги, то просто назовите ее Auto_Open.
Процедуру Auto_Open можно использовать для решения следующих задач:
-
инициализация значений переменных;
-
добавление пользовательских меню и панелей инструментов;
-
ввод (инициализация) данных в рабочий лист;
-
отображение начального окна (окна приглашения) приложения;
-
изменение установок приложения (таких как отображение сетки рабочего листа или формат вывода нулевых значений);
-
вставка рабочих листов;
-
выполнение форматирования;
-
удаление ненужных данных из рабочего листа.
Процедура, выполняемая при закрытии рабочей книги, называется Auto_Close. Вот типичные задачи, выполняемые этой процедурой:
-
удаление ненужных рабочих листов;
-
сохранение рабочей книги под другим именем в качестве резервной копии;
-
возвращение стандартных установок окна приложения (восстановление меню и панелей инструментов, отображение сетки рабочего листа и т.п.).
Можно использовать обе или только одну из этих процедур.
Имена этих процедур не чувствительны к применяемому регистру, т.е. их можно писать как строчными, так и прописными буквами.
Если рабочая книга открывается из процедуры VBA, то процедуры Auto не выполняются. В этом случае для выполнения этих процедур используется метод RunAutoMacros.
Приведем примеры процедур Auto_Open и Auto_Close. Откройте новую рабочую книгу, вставьте модуль и в этом модуле создайте процедуру Auto_Open, код которой показан в листинге 24.1.
Листинг 24.1. Пример процедуры Auto Open
1: Sub Auto_Open()
2: Range("A1").Value = "Текущая дата:"
3:
4: Range("B1").FormulaR1C1 = "=NOW()"
5: Columns("A:B").EntireColumn.AutoFit
6:
7: With ActiveWindow
8: .DisplayHorizontalScrollBar = False
9: .DisplayVerticalScrollBar = False
10: End With
11: With Application
12: .DisplayFormulaBar = False
13: .DisplayStatusBar = False
14: End With
15: End Sub
Эта процедура вводит в рабочий лист текущую дату и время и удаляет из окна Excel полосы прокрутки, строку формул и строку состояния. Если надо восстановить внешний вид окна Excel после закрытия этой рабочей книги, создайте еще процедуру Auto_Close, код которой приведен в листинге 24.2.
Листинг 24.2. Пример процедуры Auto Close
1: Sub Auto_Close()
2:
3: With ActiveWindow
4: .DisplayHorizontalScrollBar = True
5: .DisplayVerticalScrollBar = True
6: End With
7: With Application
8: .DisplayFormulaBar = True
9: .DisplayStatusBar = True
10: End With
11: End Sub
Сохраните эту рабочую книгу пол именем Час24. Для тестирования процедур закройте рабочую книгу, а затем откройте ее снова. Вы увидите текущую дату в ячейке В1, а также заметите отсутствие полос прокрутки, строки формул и строки состояния (рис. 24.1). Закройте эту рабочую книгу и откройте новую, чтобы убедиться в том, что привычный вид окна Excel восстановлен.
Рис. 24.1. Процедуры, выполняемые при открытии рабочих книг, полезны для настройки среды Excel