- •Что такое 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-му часу Тесты
- •Упражнение
Свойства и методы объекта Application
Объект Application имеет множество полезных свойств и методов. Из длинного списка свойств выделим следующие.
-
ActiveWorkbook - возвращает активную (текущую) книгу.
-
ActiveSheet - возвращает активный лист в активной рабочей книге. Возвращаемый лист может быть любого поддерживаемого типа, включая рабочий лист и лист диаграмм.
-
ActiveCell - возвращает активную ячейку на активном листе активной рабочей книги.
-
ThisWorkbook - возвращает рабочую книгу, где находится выполняемая процедура.
-
MailSystem - возвращает почтовую систему, установленную на компьютере. Это свойство особенно полезно, когда электронная почта работает в автоматическом режиме.
-
MailSession - может проверять идентификационную информацию о пользователе электронной почты.
-
OperatingSystem - полезное свойство, если разрабатываемое приложение должно работать как на платформе Windows, так и Macintosh. Это свойство определит тип операционной системы, затем можно внести необходимые изменения в ход выполнения приложения.
-
Selection - определяет текущее выделение. Выделением может быть диапазон ячеек, элементы диаграммы и т.п.
Вы уже встречались с методом InputBox объекта Application. Этот метод отображает окно ввода и позволяет указать тип возвращаемого значения. Среди других методов объекта Application выделим следующие.
-
MailLogon и MailLogoff - используемые совместно со свойствами MailSystem и MailSession эти методы позволяют начать или закончить сеанс работы электронной почты.
-
Quit - применяется для выхода из Excel.
-
Run - выполняет макросы, записанные в стиле Excel 4.0.
Объект Workbook
Вы уже знаете, что объект Workbook представляет файл рабочей книги. Не трудно догадаться, что можно делать с этим объектом: открывать, сохранять, выводить на печать, закрывать. Поэтому, прежде чем изучать свойства объекта Workbook, необходимо рассмотреть его методы.
-
Activate - делает активной указанную рабочую книгу.
-
Close - закрывает рабочую книгу.
-
Save - охраняет рабочую книгу.
При использовании метода Save рабочая книга сохраняется с текущим именем. Если книга ранее не сохранялась, то получит по умолчанию имя Книга с очередным номером.
-
SaveAs - сохраняет рабочую книгу. Отличие этого метода от метода Save заключается в том, что метод SaveAs имеет ряд необязательных, но полезных аргументов, таких как Filename (Имя файла), FileFormat (Формат файла), Password (Пароль), WriteResPassword (Пароль на запись), ReadOnlyRecommendec (Рекомендовать режим "только для чтения").
-
Printout - печать всего содержимого рабочей книги.
-
Print Preview - отображает рабочую книгу в режиме предварительного просмотра.
Из большого списка свойств объекта Workbook рассмотрим только несколько, на мой взгляд, самых необходимых и полезных. Подобно объекту Application, который имеет свойство ActiveWorkbook, данный объект также имеет свойство ActiveSheet (Активный лист). Если необходимо найти каталог, в котором сохранена рабочая книга, используется свойство Path (Путь). Очень полезным свойством является свойство Saved (Сохраненная). Это свойства возвращает значение ИСТИНА, если книга была сохранена после внесения в нее последних изменений. В противном случае возвращается значение ЛОЖЬ.
Нельзя обойти вниманием такой важный вопрос, как создание объекта новой книги. Другими словами, что является в VBA эквивалентом щелчка на кнопке Создать стандартной панели инструментов Excel? Из предыдущего часа вы уже знаете ответ на этот вопрос. Как вы помните, для создания нового элемента коллекции применялся метод Add (Добавить). Этот же метод используется и для создания новой книги. В следующем примере будет создана новая рабочая книга, в нее будет введено значение, затем она будет сохранена и закрыта.
-
Создайте новую процедуру с именем ПримерРабКниги.
-
Введите код процедуры:
Dim wbNewWorkbook As Workbook
Set wbNewWorkbook = Workbooks.Add
wbNewWorkbook.Worksheets("Лист1").Range("A1").Value = 100
wbNewWorkbook.SaveAs "Чac9"
wbNewWorkbook.Close
MsgBox "Рабочая книга закрыта"
-
Выполните программу. Вы ничего не увидите во время ее выполнения до появления окна сообщения.
-
Когда появится окно с сообщением, что рабочая книга закрыта, щелкните на кнопке ОК.
-
Откройте рабочую книгу Час9. (Если вы находитесь в редакторе Visual Basic, то перейдите в окно программы Excel и откройте книгу с помощью команды Открыть меню Файл.)
-
Вы увидите число 100 в ячейке А1 рабочего листа Лист1 - это действительно та книга, которую создала процедура.
Теперь подробнее рассмотрим все операторы этой процедуры. Ее полный код представлен в листинге 9.2.
Листинг 9.2. Процедура ПримерРабКниги
1: Sub ПримерРабКниги()
2: Dim wbNewWorkbook As Workbook
3: Set wbNewWorkbook = Workbooks.Add
4: wbNewWorkbook.Worksheets("Лист1").Range("A1").Value = 100
5: wbNewWorkbook.SaveAs "Чac9"
6: wbNewWorkbook.Close
7: MsgBox "Рабочая книга закрыта"
8: End Sub
Процедура начинается с объявления переменной-объекта:
Dim wbNewWorkbook As Workbook
Этой переменной-объекту назначается новая создаваемая рабочая книга:
Set wbNewWorkbook = Workbooks.Add
Приведенный оператор создает рабочую книгу, добавляя новый элемент в коллекцию Workbooks. При создании Excel дает рабочей книге имя по умолчанию, например Книга1 или Книга2. Другими словами, вы не знаете точное имя созданной рабочей книги. Поэтому для разрешения коллизии с именами созданная рабочая книга назначается переменной-объекту и далее в коде процедуры используется имя этой переменной вместо ссылки на книгу.
Далее процедура присваивает ячейке А1 значение
wbNewWorkbook.Worksheets("Лист1").Range("A1").Value = 100
Наконец, выполняются методы SaveAs и Close. Окно сообщения добавлено в процедуру для того, чтобы вы знали, что процедура завершилась.
wbNewWorkbook.SaveAs "Час9"
wbNewWorkbook.Close
MsgBox "Рабочая книга закрыта"
Вот и все. Поздравляю! С помощью VBA вы впервые для себя создали, сохранили и закрыли рабочую книгу Excel!
После сохранения рабочей книги с заданным вами именем в дальнейшем в ссылках на эту книгу вы можете применять или это имя, или продолжать использовать переменную-объект. Это уже дело ваших предпочтений, а не VBA.