Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум13 по Excel (пр.17%2C Макросы).docx
Скачиваний:
8
Добавлен:
06.09.2019
Размер:
2.18 Mб
Скачать

Листинг 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. Результат построения графика доходов фирмы за январь, февраль и март.