
- •Что такое 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-му часу Тесты
- •Упражнение
1-й час. Знакомство с Visual Basic for Applications
Добро пожаловать в сообщество разработчиков приложений с использованием Excel и Visual Basic for Applications! Как опытный пользователь Excel вы чувствуете себя уверенно и комфортно при работе с этой программой. Сейчас у вас появился шанс подняться на следующий уровень - автоматизировать свою работу в Excel. Даже если вы никогда ранее не программировали, то легко освоите методы решения задач автоматизации с помощью Visual Basic for Applications. На сегодняшний день Visual Basic for Applications - один из самых простых в изучении и применении языков программирования для автоматизации приложений (его даже можно назвать языком макросов). В этом часе будет заложен фундамент ваших знаний VBA, а начнем мы с хорошо знакомого вам процесса записи макросов.
В этом часе будут рассмотрены следующие вопросы.
-
Что такое Visual Basic for Applications.
-
В чем польза автоматизации в среде Excel.
-
Запись простых макросов.
-
Выполнение макросов.
-
Редактирование макросов.
-
В чем проявляется ограниченность макросов.
Что такое Visual Basic for Applications
До начала 1990-х годов идея автоматизации приложений вызывала большие сомнения и ее реализация была достаточно трудным делом даже для специалистов. Для каждого приложения, подлежащего автоматизации, необходимо было изучать свой язык программирования, с помощью которого осуществлялась автоматизация. Например, для автоматизации Excel использовался язык макросов Excel, для автоматизации Microsoft Word - язык WordBasic и т.д. Microsoft решила, что иметь для каждого разрабатываемого ею приложения свой язык автоматизации не эффективно, и предложила общий язык программирования, подходящий для всех приложений, - язык Visual Basic for Applications (VBA). Язык Visual Basic for Applications является подмножеством популярного языка разработки приложений Visual Basic. Можно сказать, что VBA является версией Visual Basic, ориентированной на приложения. Вместе с тем VBA имеет отличия от Visual Basic, которые заключаются в следующем.
-
Язык Visual Basic разрабатывался для создания законченных самостоятельных приложений, VBA используется для автоматизации существующих приложений.
-
Visual Basic имеет собственную среду разработки, VBA использует среду приложения.
-
Для выполнения приложения, созданного в Visual Basic, пользователю не обязательно иметь доступ к Visual Basic, так как разработанные приложения, как правило, исполняемые. Выполнение VBA-приложений требуют доступа к "родительскому" приложению, в котором они созданы (например, Excel).
Несмотря на описанные различия, структуры языков Visual Basic и VBA очень похожи. Если вы знакомы с Visual Basic, то легко перейдете на VBA. Верно и обратное утверждение: после изучения VBA вы получите прочный фундамент для освоения Visual Basic. Более того, после изучения VBA на примере решения задач в Excel вы будете иметь все необходимые знания для применения VBA в программах Word, Access, Outlook, FoxPro и PowerPoint.
Одним из основных свойств языка VBA является то, что изучение его на примере одного программного продукта Microsoft (или изучение языка Visual Basic) дает основу для применения его к другим продуктам Microsoft.
Говоря более "техническим" языком, VBA - это язык программирования для создания пользовательских решений по автоматизации приложений, использующий процедуры и процессы.
Автоматизация среды Excel
Вы, вероятно, будете очень удивлены, когда узнаете, что можно сделать в Excel с помощью VBA. Например, можно решить следующие задачи.
-
Автоматизировать повторяющиеся задачи.
-
Настроить интерфейс Excel с помощью модификации существующих или создания новых панелей инструментов, меню и пользовательских форм.
-
Упростить работу с шаблонами.
-
Внести дополнительную функциональность в среду Excel.
-
Создавать сложные отчеты.
-
Манипулировать данными и осуществлять анализ данных.
Если вы программировали ранее, то знаете, что почти половина требуемой базовой функциональности среды разработки реализуется средствами манипулирования файлами (поиск, открытие, сохранение, печать и т.п.), а также возможностями работы с фрагментами кода (вырезание, вставка, копирование). Вышесказанное делает очевидным преимущество использования среды приложения (в нашем случае - это Excel) для создания кода программ - все основные средства базовой функциональности уже существуют в приложении, и вы можете их использовать. Для вас доступны все средства Excel, включая средства манипулирования файлами, редактирования данных и форматирования.
Кроме того, используя среду Excel для разработки, вы имеете доступ к огромной библиотеке функций Excel. Все функции, знакомые любому пользователю Excel, доступны программисту на VBA.
С точки зрения начинающего разработчика, еще одно преимущество работы в приложении заключается в том, что вы работаете в знакомой среде. Вам знакомы и система меню, и панели инструментов, и вообще рабочие книги Excel. Поэтому даже начинающий программист будет чувствовать себя уверенно и комфортно в знакомой среде, что немаловажно на первых этапах тернистого пути программиста.
Среда Excel предоставляет преимущества не только начинающим программистам. Например, опытные программисты получают в свое распоряжение мощные средства Excel доступа к внешним базам данных. В частности, Excel позволяет легко использовать такие средства, как Microsoft SQL Server, включая OLAP Services, или средства создания отчетов и форм Microsoft Access.