- •Что такое 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, то для ввода данных лучше организовать специальную форму ввода.
Откуда будут поступать данные для приложения
Возможны различные варианты ответа на этот вопрос. Данные уже находятся в некой рабочей книге; при каждой загрузке приложение должно работать с новыми данными; данные импортируются из внешней базы данных. Местоположение данных является одним из определяющих факторов при разработке приложения.
Где и как будут храниться данные, полученные с помощью приложения
Могут быть следующие варианты ответа. Например, данные будут храниться в той же рабочей книге, где находится само приложение, либо в другой рабочей книге. А может, данные необходимо экспортировать во внешний файл, например Microsoft Access или Microsoft SQL Server? Если данные даже временно будут находиться в рабочей книге, то вы должны заранее создать эту рабочую книгу с соответствующей структурой рабочих листов.
Как данные будут обрабатываться приложением
По-другому этот вопрос можно сформулировать так: как ваше приложение будет манипулировать данными и как будет построен процесс анализа данных. Например, надо ли строить диаграммы на основе данных; какие вычисления необходимо выполнить над данными; нужно ли использовать сводные таблицы или сортировать данные. Ответив на подобные вопросы, вы сможете определиться с типом используемых рабочих листов, "зашив" в них необходимые формулы, и наметить последовательность действий, выполняемых над данными. Это, в свою очередь, позволит вам составить список макросов и процедур, которые нужно создать.
Вид выходных данных
Ответ на этот вопрос приведет вас к необходимости разработки и создания другого множества рабочих листов, так как для каждого типа выходного отчета скорее всего потребуется свой рабочий лист.
Ответы на все вышеперечисленные вопросы дадут вам информацию, необходимую для начала разработки приложения.
Типы элементов управления
Элементы управления можно вставлять как в рабочие листы, так и в экранные формы. Экранные формы (их также называют пользовательскими формами, от английского UserForm) - это окна (обычного вида, либо диалоговые), являющиеся частью интерфейса приложения. В экранную форму можно вставить больше разнообразных типов элементов управления, чем в рабочий лист. Мы сначала рассмотрим элементы управления, которые можно использовать совместно с рабочим листом (эти же элементы управления можно применять и в экранных формах).
Рис. 3.1. Панель инструментов с элементами управления, которые можно поместить на рабочий лист.
Закройте все открытые рабочие книги и откройте новую рабочую книгу. Щелкните правой кнопкой мыши на любой панели инструментов и выберите в контекстном меню панели команду Формы. На экране появится панель инструментов Формы (рис. 3.1). На этой панели расположены 16 элементов управления, но только 9 из них сейчас доступны - это те элементы управления, которые можно использовать в рабочих листах.
Первым на панели Формы расположен инструмент Надпись. Надпись - статическая область текста, обычно содержащая какую-либо поясняющую информацию, например к элементам интерфейса. На рис. 3.2 показан пример надписи. На этом рисунке проведена стрелка от инструмента Надпись панели Формы к надписи как объекту рабочего листа.
Рис. 3.2. Надпись - текст на рабочем листе, который располагается поверх ячеек
Следующий элемент управления, который представлен на панели Формы, - Рамка. Рамка используется для визуального объединения каких-либо элементов управления в группу, показывая, что эти элементы связаны между собой. Чтобы увидеть пример использования рамки, выполните команду Файл > Печать и в диалоговом окне Печать обратите внимание на секцию Вывести на печать, где собраны переключатели, с помощью которых пользователь указывает, что именно надо вывести на печать (выделенный диапазон ячеек, выделенные рабочие листы или всю рабочую книгу).
Рядом с инструментом Рамка на панели Формы находится инструмент Кнопка, с помощью которого в рабочий лист можно вставить командную кнопку. Этот элемент управления мы рассмотрели во 2-м часе "Работа с макросами". Командные кнопки широко используются в интерфейсах приложений и знакомы любому пользователю. В Windows вы на каждом шагу встречаетесь с такими кнопками, как ОК, Отмена, Да и Нет.
Следующие два элемента управления, флажок и переключатель, используются в похожих ситуациях, когда пользователю надо сделать выбор из нескольких возможностей. И флажки, и переключатели работают как переключающие элементы, имеющие два устойчивых состояния: включено и выключено. На этом их подобие заканчивается. Если флажки, показанные на рис. 3.3, организованы в группу, то пользователь может установить в этой группе один, несколько или все флажки. В отличие от флажков, в группе переключателей (рис. 3.4) можно выбрать только один переключатель из группы.
Обычно для организации флажков и переключателей в группу используется инструмент Рамка.
Рис. 3.3. Флажки используются для выбора одновременно нескольких вариантов из нескольких возможных
Рис. 3.4. Переключатели позволяют сделать только один выбор из нескольких возможных
Список и поле со списком также предлагают несколько вариантов выбора. Допустим, пользователю надо выбрать определенный регион из набора регионов. Можно поместить этот набор регионов в элемент управления список (рис. 3.5), а оттуда затем выбрать нужный регион. Если поместить набор регионов в поле со списком (рис. 3.6), то кроме выбора из списка также можно ввести любое свое значение. Поле со списком - это просто комбинация списка и поля ввода.
И список, и поле со списком работают как переключатели, позволяя выбрать или ввести только одно значение. Это замечание наталкивает на мысль, что если у вас есть группа из более чем трех переключателей, то эффективнее организовать выбор возможных вариантов с помощью списка, а не группы переключателей.
Последние два элемента управления, которые можно поместить на рабочий лист, - полосы прокрутки и счетчик. Полосы прокрутки (рис. 3.7) как элементы управления - это не совсем то, чем вы привычно пользуетесь для прокрутки, например, рабочего листа. В данном случае полосы прокрутки применяются в качестве механизмов выбора. В графических программах вы, наверное, видели, как с помощью полос прокрутки можно выбрать цвет либо сделать изображение более светлым или более темным.
Рис. 3.7. Полосы прокрутки могут быть горизонтальными и вертикальными
Рис. 3.8. Счетчик - компактный элемент управления (щелкая на его кнопках со стрелками, вы можете ввести (выбрать) числовое значение)
Счетчики (рис. 3.8) также можно рассматривать как средства выбора или как средства ввода числовых значений из заданного интервала. Если вы настраивали в Windows время и дату, то обязательно встречались со счетчиками.