Создание кнопочных сценариев

Лабораторная работа

Анализ и обработка данных в MS Excel с использованием объектно-ориентированного языка VBA (Visual Basic for Applications)

Цель данной работы заключается в том, чтобы дать студентам базовые сведения о языке программирования VBA, которые в последующем они смогут применить в своей профессиональной деятельности.

В данной лабораторной работе приводятся задания по созданию элементов управления рабочими листами и сценариями, созданию шаблонов, итогов в отчетной таблице с использованием макрорекодера VBA.

Задание 1

Создание кнопки

Создать кнопку на рабочем листе Лист1, нажатие которой будет приводить к активизации рабочего листа Лист2.

1. Выберите рабочий Лист1.

2. На вкладке Разработчик выберите Элементы управления.

3. Выберите элемент управления Кнопку (рис. 1) и нарисуйте его в том месте рабочего листа, где вы хотите расположить кнопку.

4. Измените надпись на кнопке на Лист2. Для этого нажмите кнопку Свойства в разделе Элементы управления. На экране отобразится окно Properties(рис. 2). В строке Caption напишите Лист 2.Sheets

5. Дважды щелкните на созданной кнопке, находясь в режиме конструктора. В результате откроется редактор VBA с активизированным модулем рабочего листа. Кроме того, в модуле будет создана первая и последняя строка инструкции процедуры обработки события – нажатие кнопки.

6. Добавьте инструкцию
Sheets (“Лист2”). Select

7. Процедура обработки события – нажатие кнопки, при котором будет активизирован рабочий лист Лист2, будет иметь следующий вид:
Private Sub CommandButton1_Click()
Sheets("Лист2").Select
End Sub

8. Отключите режим конструктора в разделе Элементы управления. Протестируйте созданную кнопку.

9. Создайте на рабочем листе Лист1 еще одну кнопку, которая будет активизировать рабочий лист Лист3.


Задание 2

Создание кнопочных сценариев

Задача. Предположим, что вы – менеджер фирмы, подвели итоги по платежам за январь и хотите подсчитать ожидаемые платежи в феврале. Предположим, что платежи в феврале будут производиться в тех же объемах, а на их размер может влиять только инфляция. В феврале возможны три варианта инфляции:

Вариант Процент
Худший 7%
Ожидаемый 3%
Лучший 1%

Сделать три кнопки. При нажатии на соответствующую кнопку должен происходить перерасчет ожидаемых затрат.

Рис. 3




1. На рабочем листе создайте три кнопки, и при помощи окна Properties,назначьте им значения свойств Name и Caption следующим образом:

Свойство Caption Свойство Name
Худший cmdХудший
Ожидаемый cmdОжидаемый
Лучший cmdЛучший

Примечание. Префикс в имени cmd используется для удобства, чтобы подчеркнуть, что это имя кнопки.

Предварительно изучите структуру кода. Для этого:

a. Активизируйте макрорекодер выбором команды Запись макросав разделеКодна лентеРазработчик.

b. Выберите диапазон ячеек С2:С7.

c. Введите в диапазон С2:С7 формулу=В2:В7*(1+D10). Ввод формулы завершите нажатием комбинации клавиш ++.

d. Завершите работу макрорекодера выбором команды Остановить записьв разделеКодна лентеРазработчик.

e. В стандартном модуле просмотрите код макроса.[к1]


Он должен выглядеть следующим образом:

Sub Макрос1()

'

' Макрос1 Макрос

' Макрос записан 26.12.2006 (комп9)

'

'

Range("C2:C7").Select

Selection.FormulaArray = "=RC[-1]:R[5]C[-1]*(1+R[8]C[1])"

End Sub

Две инструкции макроса соответствуют второму и третьему пунктам алгоритма, т.е. они осуществляют ввод формулы в диапазон С2:С7. Вместо этих двух инструкций можно записать одну, которая программирует ввод формулы в диапазон:

Range("C2:C7").FormulaArray = "=RC[-1]:R[5]C[-1]*(1+R[8]C[1])"

Итак, код макроса, реализующего расчет ожидаемых расходов, можно свести к одной инструкции.

f. На панели элементов включите режим конструктор.

g. Щелкните правой кнопкой мыши на кнопке Худший и выберите команду исходный текст.

h. В модуле рабочего листа наберите следующий код:



Private Sub CmdЛучший_Click()

Range("C2:C7").FormulaArray = "=RC[-1]:R[5]C[-1]*(1+R[10]C[1])"

End Sub

Private Sub CmdОжидаемый_Click()

Range("C2:C7").FormulaArray = "=RC[-1]:R[5]C[-1]*(1+R[9]C[1])"

End Sub

Private Sub CmdХудший_Click()

Range("C2:C7").FormulaArray = "=RC[-1]:R[5]C[-1]*(1+R[8]C[1])"

End Sub

i. Закройте модуль, отключите режим конструктора и проверьте работу кнопок.


Задание 3

Создание шаблона отчета

Задача. Предположим, что вы – менеджер фирмы, и каждый месяц составляете таблицу учета расходов. Для автоматизации процесса создания таблицы расходов создадим шаблон таблицы, в которую останется ввести данные.

a. [к2] Активизируйте макрорекодер выбором команды Сервис, Макрос, Начать запись.

b. Задайте имя макроса Шаблон.

c. Создайте таблицу Расходы (см. рис.4)

d. Завершить работу макрорекодера выбором команды Сервис, Макрос, Остановить запись.

Рис. 4

Задание 4


0007698074431325.html
0007867909916408.html
    PR.RU™