- •Что такое 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-му часу Тесты
- •Упражнение
Ответы к 18-му часу Тесты
-
Какой оператор VBA используется для создания диаграммы?
Оператор Charts.Add.
-
Какое свойство объекта Application возвращает текущую активную диаграмму?
Свойство ActiveChart.
-
Какое свойство объекта Chart определяет тип создаваемой диаграммы?
Свойство ChartType.
-
Какой метод объекта Chart управляет данными, отображаемыми в диаграмме?
Метод SourceData.
-
Что из перечисленного не является свойством объекта Chart: ChartArea, ChartType, ChartLocation или ChartTitle?
ChartLocation.
-
Истинно или ложно следующее утверждение: процесс построения диаграмм можно записать с помощью макроса?
Истинно. Это самый простой способ создания процедур, строящих диаграммы.
-
Свойство _____________ объекта Workbook возвращает активную диаграмму.
ActiveChart.
Упражнение
Создайте экранную форму с пятью переключателями (рис. 18.5):
-
Круговая диаграмма
-
Объемная круговая диаграмма
-
Гистограмма
-
Гистограмма с накоплением
-
Объемная гистограмма с накоплением
Создайте процедуру с именем ВыборТипаДиаграмм, которая выводила бы экранную форму. В экранной форме, в зависимости от числа столбцов в выделенном диапазоне ячеек, должен быть предустановлен или переключатель Круговая диаграмма, или переключатель Гистограмма. После выбора пользователем типа диаграммы и щелчка на кнопке ОК формы диаграмма выбранного типа должна быть построена.
Таблица свойств формы и ее элементов
Элемент |
Свойство Caption (Заголовок) |
Свойство Name (Имя) |
Форма |
Выбор типа диаграммы |
frmChartType |
Надпись (в верхней части формы) |
значение свойства Caption задается в процедуре |
lblInfo |
Переключатель |
Круговая диаграмма |
optPie |
Переключатель |
Объемная круговая диаграмма |
opt3DPie |
Переключатель |
Гистограмма |
optClusterColumn |
Переключатель |
Гистограмма с накоплением |
optStackedColumn |
Переключатель |
Объемная гистограмма с накоплением |
opt3DStackedColumn |
Командная кнопка |
ОК |
cmdOK |
Командная кнопка |
Отмена |
cmdCancel |
В области общих объявлений модуля необходимо ввести строку кода:
Dim rCurrRange As Range
Код процедуры ВыборТипаДиаграмм:
Sub ВыборТипаДиаграмм()
Set rCurrRange = Selection
frmChartType.Show
End Sub
Процедура инициализации экранной формы:
Private Sub UserForm_Initialize()
If rCurrRange.Columns.Count = 2 Then
optPie.Enabled = True
optPie.Value = True
opt3DPie.Enabled = True
opt3DPie.Value = False
optClusterColumn.Enabled = False
optClusterColumn.Value = False
optStackedColumn.Enabled = False
optStackedColumn.Value = False
opt3DStackedColumn.Enabled = False
opt3DStackedColumn.Value = False
lblInfo.Caption = "Для этих данных рекомендуемый тип диаграмма - круговая"
ElseIf rCurrRange.Columns.Count > 2 Then
optClusterColumn.Enabled = True
optClustorColumn.Value = True
optStackedColumn.Enabled = True
optStackedColumn.Value = False
opt3DStackedColumn.Enabled = True
opt3DStackedColumn.Value = False
optPie.Enabled = False
optPie.Value = False
opt3DPie.Enabled = False
opt3DPie.Value = False
lblInfo.Caption = "Для этих данных рекомендуемый тип диаграммы - гистограмма"
Else
MsgBox "Выделенный диапазон не позволяет построить диаграмму"
frmChartType.Hide
End
End If
End Sub
Код процедуры cmdOK_Click (построение диаграмм):
Private Sub cmdOK_Click()
If optPie.Value = True Then
Charts.Add
ActiveChart.ChartType = xlPie
ActiveChart.SetSourceDate Source:=rCurrRange, PlotBy:= xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист1"
ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowPercent, _
LegendKey:=False, HasLeaderLines:=True
ElseIf opt3DPie.Value = True Then
Charts.Add
ActiveChart.ChartType = xl3DPie
ActiveChart.SetSourceDate Source:=rCurrRange, PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист1"
ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowPercent, _
LeqendKey:=False, HasLeaderLines:=True
ElseIf optStackedColumn.Value = True Then
Charts.Add
ActiveChart.ChartType = xlColumnStacked
ActiveChart.SetSourceDate Source:=rCurrRange
ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист1"
ElseIf optClusterColumn.Value = True Then
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceDate Source:=rCurrRange
ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист1"
ElseIf opt3DStackedColumn.Value = True Then
Charts.Add
ActiveChart.ChartType = xl3DColumnStacked
ActiveChart.SetSourceDate Source:=rCurrRange
ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист1"
End If
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Объем продаж"
.ChartTitle.Select
End With
Selection.AutoScaleFont = True
With Selection.Font
.Name = "Arial"
.FontStyle = "полужирный курсив"
.Size = 14
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
.Background = xlAutomatic
End With
frmChartType.Hide
End Sub
Код процедуры cmdCancel_Click:
Private Sub cmdCancel_Click()
frmChartType.Hide
End Sub