- •Что такое 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-му часу Тесты
- •Упражнение
Свойства экранной формы
Первый шаг при работе с экранной формой - установка значений ее свойств. Прежде всего, это относится к свойству Name (Имя), которое используется в коде программы для ссылки на экранную форму. При создании формы Excel назначает ей имя, подобное UserForm1. Можно оставить и это имя. Но если у вас несколько форм и все они имеют имена, подобные UserForm1, UserForm2, UserForm3 и т.д., то разобраться в них будет нелегко.
Рекомендуемый префикс для имен экранных форм - frm. Это сокращение от слова form (форма).
После задания свойства Name надо задать значение свойства Caption (Заголовок). Это тот текст, который отображается в строке заголовка формы.
В качестве примера создадим экранную форму, которая повторяет карточку гостевых расходов постояльца отеля, где есть собственный пляж, поля для гольфа, теннисный корт, бассейн и т.д. Карточка должна учитывать расходы на подобные услуги, не связанные непосредственно с проживанием в отеле.
Для установки значений свойств экранной формы выполните следующее.
-
Если окно свойств Properties не отображено на экране, нажмите клавишу <F4>. На рис. 14.2 показано окно Properties со списком всех свойств экранной формы.
-
Выберите свойство Name, которое находится в верхней части списка свойств, упорядоченного по алфавиту.
-
В качестве имени формы введите frmGuestExpenses.
-
Выберите свойство Caption.
-
Введите Гостевые расходы. Этот текст будет отображаться в строке заголовка формы.
Внесенный текст свойства Caption сразу появится в строке заголовка формы. Это только два, но очень важных свойства из многочисленного списка свойств экранной формы.
Рис. 14.2. Свойства можно отобразить или в алфавитном порядке, или по категориям
Выполнение экранной формы
Хотя еще никакой код не ассоциируется с нашей экранной формой, ее все равно можно выполнить. Под выполнением формы понимается вывод ее на экран в окне приложения. Выполнение формы осуществляется следующим образом.
-
Щелкните на форме для ее выделения.
Рис. 14.3. Выполнение экранной формы
-
Нажмите клавишу <F5>. В окне рабочей книги появится форма (рис. 14.3). Отметим, что сетка, которая есть на форме в редакторе Visual Basic, при выполнении формы не отображается.
-
Закройте форму, щелкнув на кнопке Закрыть в правом углу строки заголовка.
-
Вернитесь в редактор Visual Basic.
Вы заметили, что получили подарок от Visual Basic? Вы не писали никакого кода, а в экранной форме имеется кнопка Закрыть. Интересно, как она туда попала?
Вставка элементов управления в экранную форму
Процесс вставки элементов управления в экранную форму ничем не отличается от аналогичного процесса вставки элементов управления в рабочий лист. Вы просто выбираете нужный элемент управления на панели элементов и перетаскиваете его в экранную форму.
При вставке элементов управления в рабочий лист вы брали их из панели инструментов Формы. В редакторе Visual Basic аналогичная панель называется Панель элементов.
Обратитесь к 3-му часу "Работа с элементами управления", в котором описывались различные типы элементов управления.
Напомню, что мы хотим создать форму, похожую на карточку гостевых расходов. Завершенная экранная форма показана на рис. 14.4.
Рис. 14.4. Завершенная карточка гостевых расходов
Как видно из рис. 14.4, в форме использованы различные элементы управления. Чтобы вставить их в форму, выполните следующие действия.
-
Если панель элементов не отображена на экране, выполните команду View > Toolbox (Вид > Панель элементов).
-
На панели элементов выберите элемент Надпись (Label).
-
Поместите элемент Надпись в верхний левый угол формы.
-
Если окно свойств скрыто, нажмите клавишу <F4>. Задайте свойству Name элемента Надпись значение lblRoomNumber, а свойству Caption - Номер комнаты:.
-
На панели элементов выберите элемент Поле (TextBox) и поместите его рядом с надписью. Задайте для свойства Name поля значение txtRoomBox.
-
Используя рис. 14.4 как руководство к действию, продолжайте создавать элементы управления и задавать значения их свойств, описанные в табл. 14.1. При вставке элемента Рамка (Frame) сначала поместите в форму этот элемент, а затем разместите в рамке другие элементы управления. Пока не думайте о выравнивании элементов управления и их размерах - об этом мы побеспокоимся позднее.
-
Сохранить рабочую книгу под именем Гость.
Я знаю, что создание элементов управления довольно скучное и утомительное занятие, но через это необходимо пройти. Далее в этом часе вы познакомитесь с другими свойствами элементов управления.
Таблица 14.1. Элементы управления экранной формы
Тип элемента управления |
Значения свойства Name |
Значения свойства Caption |
Надпись |
lblGuestName |
Имя гостя: |
Поле |
txtGuestName |
|
Надпись |
lblExpenseType |
Тип расходов: |
Поле со списком |
lstExpenseType |
|
Надпись |
lblAmount |
Сумма: |
Поле |
txtAmount |
|
Надпись |
lblDate |
Дата: |
Поле |
txtDate |
|
Рамка |
fraPayment |
Способ оплаты |
Переключатель |
optBillToRoom |
Включить в счет |
Переключатель |
optCash |
Наличными |
Переключатель |
optCheck |
Чеком |
Переключатель |
optCreditCard |
Кредитная карта |
Надпись |
lblCardType |
Тип карты: |
Поле со списком |
lstCardType |
|
Надпись |
lblCardNumber |
№ карты: |
Поле |
txtCardNumber |
|
Надпись |
lblExpires |
Срок окончания |
Поле |
txtExpires |
|
Командная кнопка |
cmdSave |
Сохранить |
Командная кнопка |
cmdCancel |
Отмена |
Рамка |
fraTips |
Дополнительно |
Флажок |
chkTiplncluded |
Включить |
Надпись |
lblTipAmount |
сумму: |
Поле |
txtTipAmount |
|