- •Что такое 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 имеет много средств доступа к внешним источникам данных (в частности, к ним можно отнести и сводные таблицы, с которыми мы работали в предыдущем часе). Среди всего многообразия таких средств выделим следующие:
-
MS Query (Запрос Microsoft)
-
ADO (ActiveX Data Objects - Объекты данных ActiveX)
-
DAO (Data Access Objects - Объекты доступа к данным)
-
ODBC1 (Open Database Connectivity - Взаимодействие открытых баз данных)
Средства ADO предпочтительны для организации быстрого и эффективного доступа к базе данных Microsoft Access и ей подобных. DAO в основном применяется для поддержки обратной совместимости со старыми версиями баз данных. Технология ODBC используется для соединения с широким спектром самых разнообразных баз данных, в том числе с Microsoft SQL Server и Oracle, В этом часе мы уделим основное внимание возможностям MS Query по импортированию данных в Excel.
Использование ms Query
В Excel самый простой способ установить связь с внешним источником данных и извлечь из него данные состоит в использовании средства MS Query, при этом извлеченные данные помешаются в рабочий лист Excel. MS Query имеет одно несомненное преимущество для разработчиков приложений: процесс создания связи с базой данных и извлечение данных можно записать в виде макроса, что помогает уменьшить время разработки приложений. Но MS Query имеет и свои недостатки - запрос к внешним базам данных с помощью MS Query выполняется очень медленно. Поэтому разработчику приложений приходится решать непростой вопрос, что для него важнее: быстрое и простое создание кода приложения или быстрое и эффективное выполнение готового приложения.
Если принято решение использовать механизм MS Query как часть разрабатываемого приложения, то, прежде всего, необходимо инсталлировать MS Query на компьютере разработчика. MS Query не инсталлируется при типовой установке Excel 2000 или Office 2000, но инсталлируется как часть полной установки. После инсталляции Excel 2000 MS Query можно установить отдельно.
В этом часе в качестве "подопытной" базы данных будем использовать базу данных Борей, которая входит в поставку Microsoft Access. Для создания макроса, извлекающего данные из базы данных Борей, выполните следующие действия.
-
Закройте все открытые рабочие книги и отройте новую.
-
Начните запись макроса с именем ПримерMSQuery и сохраните его в текущей книге.
-
Выполните команду Данные > Внешние данные > Создать запрос. Откроется диалоговое окно Выбор источника данных (рис. 20.1). Здесь можно выбрать существующий источник данных или создать новый.
-
В диалоговом окне Выбор источника данных на вкладке Базы данных выберите пункт База данных MS Access и щелкните на кнопке ОК. В открывшемся диалоговом окне Выбор базы данных укажите путь к базе данных Борей. Если Excel 2000 или Office 2000 инсталлированы на диске С:, то, скорее всего, путь к базе данных Борей будет следующий: C:\Program Files\Microsoft Office\Office\Samples\Борей.mdb. Выберите Борей и щелкните на кнопке ОК. Откроется диалоговое окно Создание запроса: выбор столбцов (рис. 20.2).

Рис. 20.1. Диалоговое окно для выбора источника данных

Рис. 20.2. Следующий шаг после установки связи с базой данных - выбор данных
-
В диалоговом окне Создание запроса: выбор столбцов показаны все таблицы и запросы, имеющиеся в открытой базе данных. Чтобы увидеть столбцы таблиц и запросов, щелкните на значке "+" рядом с именем таблицы и запроса в списке Имеющиеся таблицы и столбцы. Щелкните на значке "+" рядом с таблицей Товары и выберите столбец КодТовара. Щелкните на кнопке со значком ">", чтобы перенести столбец в окно Столбцы запроса. Таким же образом выберите и перенесите столбцы Марка, Цена и НаСкладе. Щелкните на кнопке Далее. Откроется диалоговое окно Создание запроса: отбор данных (рис. 20.3).
-
В списке Столбцы для отбора выберите столбец Цена. В первом раскрывающемся списке выберите оператор сравнения больше или равно, а в соседнее поле введите число 20 (рис. 20.3). Таким образом мы создали фильтр, отбраковывающий все записи, у которых значение в поле Цена меньше 20. Щелкните на кнопке Далее. Откроется диалоговое окно Создание запроса: порядок сортировки (рис. 20.4).

Рис. 20.3. Диалоговое окно, позволяющее выполнять фильтрацию импортируемых данных

Рис. 20.4. После задания фильтра на извлекаемые данные можно установить порядок сортировки записей
-
Выберите цена в раскрывающемся списке Сортировать по и щелкните на кнопке Далее. Откроется последнее диалоговое окно Создание запроса: заключительный шаг (рис. 20.5).
-
Для возврата в Excel щелкните на кнопке Готово. Появится диалоговое окно Возврат данных в Microsoft Excel, спрашивающее, куда поместить данные (рис. 20.6).
-
Поместите данные в текущий рабочий лист, начиная с ячейки AI. Щелкните на кнопке ОК. Через несколько мгновений выбранные данные появятся врабочем листе (рис. 20.7).
-
Остановите запись макроса.

Рис. 20.5. Последний вопрос: что вы хотите делать с данными?
Рис.
20.6. И еще один вопрос: куда поместить
данные?

Рис. 20.7. Данные вставлены в рабочий лист
