- •Что такое 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-му часу Тесты
- •Упражнение
Создание панелей инструментов
Можно не только добавлять новые кнопки на существующие панели инструментов, но также не составляет большого труда создать новую панель инструментов. На новую панель, например, можно поместить кнопки, которым назначены все макросы и процедуры для вашего приложения. Далее в этом часе я покажу, как можно скрывать и отображать панели инструментов, управляя таким образом их доступностью.
Для создания новой панели инструментов выполните следующие действия.
-
Щелкните правой кнопкой мыши на какой-нибудь панели инструментов.
-
В контекстном меню панели выберите пункт Настройка.
-
В диалоговом окне Настройка перейдите на вкладку Панели инструментов.
-
Щелкните на кнопке Создать. Появится диалоговое окно Создание панели инструментов.
-
Введите имя панели, например Моя панель, и нажмите клавишу <Enter>. Появится маленькая пустая панель (рис. 16.4).
-
Щелкните на кнопке Закрыть для закрытия диалогового окна Настройка.
Созданная панель очень маленькая, но по мере добавления в нее кнопок ее размер будет увеличиваться. Для вставки в новую панель кнопок используется методика, описанная в предыдущем разделе.
Рис. 16.4. Панель создана, но она пустая
Процедуры, управляющие панелями инструментов
Панели инструментов можно создать и с помощью программного кода. Посредством кода VBA можно создавать панели инструментов, вставлять в них кнопки, отображать и скрывать панели, удалять их. Можно создать панель инструментов при открытии рабочих книг и удалить ее во время закрытия книг. Это означает, что такие панели инструментов будут доступны только тогда, когда открыта данная рабочая книга.
Создание панели инструментов
Если вам предложат создать посредством VBA панель инструментов, то, скорее всего, вы попробуете применить метод Add (Добавить) для создания нового элемента коллекции Toolbars (Панели инструментов). Вы правы в своей догадке о применении метода Add, но коллекции Toolbars в VBA нет. В VBA панели инструментов группируются совместно со строкой меню и контекстными меню и образуют коллекцию CommandBars (Командные панели). Таким образом, создание новой панели инструментов равносильно созданию нового элемента коллекции CommandBars с помощью метода Add.
После создания панели инструментов следующий шаг очевиден - вставка в нее кнопок инструментов. Для этого также используется метод Add, но уже применительно к коллекции Controls (Элементы управления). Распишем пошагово процесс создания панели инструментов.
-
Откройте рабочую книгу Гость.
-
Нажмите комбинацию клавиш <Alt+F11> для открытия редактора Visual Basic.
-
Создайте новую процедуру с именем МояПанель.
-
Введите код этой процедуры.
Dim ctlGEButton As Object
ThisWorkbook.Activate
Application.CommandBars.Add Nаmе:="Моя панель"
CommandBars("Моя панель").Visible = True
Set ctlGEButton = Application.CommandBars("Моя панель"). _
Controls.Add(Type:=msoControlButton, ID:=2950, Before:=l)
With ctlGEButton
.FaceId = 2141
.OnAction = "ЗагрузкаФормы"
End With
-
Выполните процедуру. Новая панель создана.
-
Щелкните на кнопке новой панели - отобразится форма Гостевые расходы.
-
Щелкните на кнопке Отмена для закрытия формы.
Чтобы повторить выполнение процедуры, необходимо удалить созданную панель инструментов. Для этого щелкните на ней правой кнопкой мыши, выберите команду Настройка и в диалоговом окне Настройка на вкладке Панели инструментов выделите панель Моя панель, затем щелкните на кнопке Удалить.
Проанализируем код процедуры МояПанель. Сначала в этой процедуре была объявлена переменная-объект ctlGEButton, которая затем примет значение кнопки панели инструментов:
Dim ctlGEButton As Object
Далее была активизирована рабочая книга, так как панель создается именно для этой рабочей книги:
ThisWorkbook.Activate
Затем создается панель инструментов и устанавливается ее свойство Visible (Видимый) как True.
Application.CommandBars.Add Name:="Моя панель"
CommandBars("Моя панель").Visible = True
После этого для новой панели инструментов создается кнопка как элемент коллекции Controls.
Set ctlGEButton = Application.CommandBars("Моя панель").Controls. _
Add(Type:=msoControlButton, ID:=2950, Before:=l)
Здесь аргумент Type определяет тип создаваемого элемента управления (в нашем случае - это кнопка, но могут быть и другие, например поля, списки, раскрывающиеся меню и т.п.). Аргумент ID задает тип кнопки, настраиваемой кнопке соответствует значение 2950 аргумента ID.
Далее устанавливаются свойства кнопки FaceId (Идентификатор внешнего вида) и OnAction (Действие).
With ctlGEButton
.FaceId = 2141
.OnAction = "ЗагрузкаФормы"
End With
Первое свойство задает изображение-значок, отображаемое на кнопке, а второе назначает кнопке макрос или процедуру (в данном случае процедуру ЗагрузкаФормы).
Если вы хотите, чтобы панель инструментов создавалась при открытии рабочей книги, поместите соответствующий код в процедуру Auto_Open. Подробно об этой процедуре будет рассказано в 24-м часе.