- •Что такое 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-му часу Тесты
- •Упражнение
Вопросы и ответы
Вопрос. Какие свойства элементов управления возвращают значения, введенные пользователем?
Ответ. Смотрите следующую таблицу.
Элемент управления |
Свойство |
Надпись |
Caption |
Поле |
Text |
Список |
Text |
Поле со списком |
Text |
Переключатель |
Value |
Флажок |
Value |
Счетчик |
Value |
Вопрос. Значения элементов списков экранной формы содержатся на листе рабочей книги. Но я не хочу, чтобы другие пользователи изменяли или даже видели эти данные. Что для этого нужно сделать?
Ответ. Есть несколько способов. Первый: с помощью команды Excel Формат > Лист > Скрыть можно скрыть этот рабочий лист. Другой путь программный: в процедуре рабочей книги Auto_Open установите свойство Visible (Видимый) рабочего листа как False.
Практикум
С помощью тестов и упражнений вы проверите, насколько хорошо усвоили изложенный материал. Ответы на вопросы смотрите в Приложении.
Тесты
-
Как установить блокировку элемента управления?
-
Как вызвать форму на экран?
-
В какой процедуре находится код инициализации значений элементов формы?
-
Как удалить экранную форму из памяти компьютера?
-
Если необходимо вернуться к какому-либо элементу управления посредством кода, какой метод следует применить?
-
Где хранятся элементы списков?
-
Какое свойство списков задает элемент, отображаемый в списке по умолчанию?
-
В какой процедуре обычно проверяются на корректность данные, вводимые пользователем?
Упражнение
Создайте процедуру под именем ПоказФормы, которая должна выводить на экран форму frmSplash, созданную как упражнение в 14-м часе.
Создайте код, с помощью которого после щелчка на кнопке ОК в форме frmSplash будет открываться форма Гостевые расходы.
Перейдите на Лист1 в рабочей книге Гость и назначьте процедуру ПоказФормы командной кнопке.
16-й час. Панели инструментов
В этом часе мы сосредоточим внимание на двух основных темах: работа с панелями инструментов "в ручном режиме" и управление панелями инструментов с помощью процедур. Панели инструментов - одна из важнейших составляющих пользовательского интерфейса Excel, но вместе с тем, они легко подстраиваются под желания пользователя. Можно также создавать собственные панели инструментов, причем с кнопками, которым назначены написанные вами процедуры. В этом часе вы расширите свои знания об управлении панелями инструментов как "вручную", так и посредством программного кода.
В этом часе будут рассмотрены следующие вопросы.
-
Добавление кнопок на панели инструментов "вручную".
-
Создание новых панелей инструментов.
-
Работа с панелями инструментов с помощью процедур.
Настройка панелей инструментов
Меня всегда поражало, как мало пользователей Excel, которые создают собственные панели инструментов или добавляют новые кнопки на существующие панели. Вместе с тем, все пользователи в своей работе применяют инструменты, расположенные на панелях, и находят это очень удобным. С этой точки зрения, есть два известных конкурирующих способа выполнения процедур (не считая способов исполнения процедур в редакторе Visual Basic): назовем их "щелчковый" и "командный". В первом способе процедура назначается какому-либо элементу управления, а затем вызывается на исполнение щелчком на этом элементе. Во втором способе процедура выполняется из диалогового окна Макрос, которое открывается командой Сервис > Макрос > Макросы. Если вам не хочется использовать элементы управления в рабочем листе или вы устали от постоянного выполнения команды Сервис > Макрос > Макросы, то есть еще один способ выполнения процедур (из разряда "щелчковых") - надо назначить процедуру кнопке панели инструментов.
Сначала рассмотрим технологию добавления новой кнопки на существующую панель инструментов. Microsoft предлагает множество разнообразных изображений-значков, которые можно поместить на новые кнопки, либо для этих целей можно создать собственное изображение. Итак, выполните следующие инструкции для вставки новой кнопки на панель инструментов и для назначения ей процедуры.
-
Откройте рабочую книгу Гость.
-
Щелкните правой кнопкой мыши на любой панели инструментов и в контекстном меню панели выберите пункт Настройка. Откроется одноименное диалоговое окно (рис. 16.1).
Рис. 16.1. Это диалоговое окно используется для настройки панелей инструментов и меню
-
В диалоговом окне Настройка на вкладке Команды в списке Категории выберите пункт Макросы. В списке Команды вы увидите элемент Настраиваемая кнопка.
-
Перетащите элемент Настраиваемая кнопка на одну из существующих панелей инструментов. При перемещении элемента Настраиваемая кнопка по панелям инструментов вы увидите рядом с ним черный указатель в виде буквы I. Он показывает, где будет располагаться новая кнопка, когда вы отпустите кнопку мыши.
-
Выбрав подходящее место для новой кнопки, отпустите кнопку мыши. Новая кнопка будет вставлена на панель инструментов (рис. 16.2).
-
Щелкните правой кнопкой мыши на новой кнопке. В контекстном меню кнопки выберите пункт Имя и введите имя кнопки Гостевые расходы. Это имя будет отображаться в качестве экранной подсказки данной кнопки.
-
Еще раз щелкните правой кнопкой мыши на новой кнопке и в контекстном меню выберите пункт Выбрать значок для кнопки. Откроется палитра изображений-значков, которые можно поместить на кнопку (рис. 16.3). Выберите изображение по своему вкусу, и стандартное изображение на кнопке заменится на выбранное вами.
Рис. 16.2. Новая кнопка вставлена на стандартную панель инструментов
Рис. 16.3. Широкий выбор значков для новой кнопки
-
Снова щелкните правой кнопкой мыши на новой кнопке и в открывшемся меню выберите пункт Назначить макрос. В открывшемся одноименном диалоговом окне выберите процедуру ЗагрузкаФормы.
-
Закройте диалоговое окно Настройка.
-
Щелкните на новой кнопке. Должна отобразиться форма Гостевые расходы.
-
Щелкните на кнопке Отмена для закрытия формы.
Сделаем важное замечание: созданная кнопка будет доступна во всех рабочих книгах. Это значит, что и в любой другой рабочей книге щелчок на этой кнопке должен открывать форму Гостевые расходы. Отсюда следует вывод, что описанную здесь технику назначения процедур кнопкам панелей инструментов нужно применять только в том случае, если назначаемые макросы и процедуры должны быть доступны во всех рабочих книгах. Обычно такие общедоступные макросы и процедуры хранятся в личной книге макросов.
В нашем случае созданную кнопку Гостевые расходы, по-видимому, следует удалить. (Тем более, что вызванная с помощью этой кнопки форма отказывается работать с любой другой рабочей книгой, кроме книги Гость, так как не может найти данные, необходимые для инициализации элементов формы. - Прим. ред.) Для удаления кнопки выполните следующие действия.
-
Щелкните правой кнопкой мыши на любой панели инструментов и в контекстном меню выберите пункт Настройка.
-
Когда открыто диалоговое окно Настройка, можно удалить любую кнопку. Для этого просто перетащите кнопку из панели инструментов в это диалоговое окно.
-
Закройте диалоговое окно Настройка.
Если сделано несколько изменений во встроенных панелях инструментов, то для одновременного удаления всех изменений откройте диалоговое окно Настройка, перейдите на вкладку Панели инструментов, установите флажки возле тех панелей, которые вы хотите вернуть в предыдущее состояние, и щелкните на кнопке Сброс.