- •Листинг 1. Макрос, активизирующий рабочий Лист2, стандартный модуль.
- •Немного теории.
- •6) Создадим теперь код процедуры, обрабатывающей событие «нажатие кнопки». В результате обработки этого события должен активизироваться рабочий лист Лист3.
- •Листинг 3*. Макрос по составлению шаблона отчета (отредактированный)
Листинг 3*. Макрос по составлению шаблона отчета (отредактированный)
Sub ChartBuilder()
' отредактированная процедура для макроса Построение_шаблона_таблицы_простой
Dim sheetName As String
sheetName = InputBox("Введите имя листа")
If sheetName <> Empty Then
ActiveSheet.Name = sheetName
End If
Range("A1").Value = "Статья расходов"
Range("B1").Value = "Расходы"
Range("A2").Value = "Телефон"
Range("A3").Value = "Аренда"
Range("A4").Value = "Амортизация"
Range("A5").Value = "Страховка"
Range("A6").Value = "Заработная плата"
Range("A7").Value = "Итого"
Range("B7").FormulaLocal = "=СУММ(B2:B6)"
Columns("A:A").AutoFit
Columns("B:B").AutoFit
Range("B2").Select
End Sub
В листинге 4 в строках с 3-6 содержатся инструкции, которые приводят к отображению на экране диалогового окна, предлагающего изменить его название листа, если пользователь желает этого:
Dim sheetName As String
sheetName = InputBox("Введите имя листа")
If sheetName <> Empty Then
ActiveSheet.Name = sheetName
End If
Если пользователь не желает изменять название листа, то в предложенном диалоговом окне он нажимает кнопку Cancel, поле ввода остается пустым и лист сохраняет прежнее название.
10) Создайте самостоятельно с помощью макрорекордера макрос, который очищает рабочий лист от имеющихся данных и форматирования, полученного в результате выполнения макроса форматирования.
Пример 4.
Управление диаграммой.
Предположим вам, создавая годовой отчет, предстоит построить диаграммы дохода некой фирмы в течение года. Например, только за январь, с января по февраль, с января по март, и т.д., т.е. всего 12 диаграмм. Конечно, можно построить все 12 диаграмм, а можно обойтись одной. В этом случае нужно применить инструмент, позволяющий вводить заданный временной интервал, а диаграмма должна автоматически перестраиваться в соответствии с ним. Для этого необходимо использовать элементы управления: либо Список, либо Поле со списком.
Для этого:
1) В ячейки А1 и В1 введите текст для заголовков столбцов: Месяц и Доход.
2) В диапазон ячеек А2:А13 введите названия месяцев, используя автозаполнение.
3) В диапазон В2:В13 введите доходы фирмы.
4) По эти двум диапазонам (А2:А13 и В2:В13) постройте диаграмму. Для этого выполните команду: Вставка → Диаграммы → Гистограммы → выберите понравившийся вам тип (см. рис. 14).
5) На рабочем листе расположите элемент Поле со списком , который позволит произвести выбор временного интервала. Для этого выполните команду: Разработчик → Элементы управлении → Вставить → Элементы ActiveX → элемент управления Поле со списком. Далее перейдите на рабочий лист и нарисуйте элемент управления необходимого размера.
6) Установите в окне Properties для элемента управления Поле со списком значение свойства ListFillRange равным A2:A13. Это свойство заполняет список на основе данных из указанного диапазона (см. рис. 15).
7) Щелкните дважды по созданному элементу управления Поле со списком и перейдите в окно модуля рабочего листа.
8) Наберите в модуле рабочего листа код на языке VBA из листинга 4.
9) Перейдите на лист рабочего листа и проверьте с использованием элемента управления Поле со списком возможность быстрого построения диаграммы о доходах фирмы. Для того, чтобы построить диаграмму, например, за январь, в поле элемента со списком выберите Январь, за январь и февраль: Февраль и т.д.
10) Результат быстрого построения диаграммы о доходах фирмы (например, за январь, февраль и март) см. рис. 16.
Листинг 4. Управление диаграммой
Private Sub ComboBox1_Change()
Dim r As Integer
ActiveSheet.ChartObjects(1).Activate
r = ComboBox1.ListIndex + 2
With ActiveChart
.SetSourceData _
Source:= _
Sheets(1).Range(Cells(2, 2), Cells(r, 2)), PlotBy:=xlColumns
.SeriesCollection(1).XValues _
= Sheets(1).Range(Cells(2, 1), Cells(r, 1))
End With
End Sub
Рис. 14. Построение диаграммы «Доходы фирмы».
Рис. 15. Для элемента Поле со списком в окне свойств Properties установлено значение свойства ListFillRange равным A2:A13.
Рис. 16. Результат построения графика доходов фирмы за январь, февраль и март.