Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Создание пользовательских п ÒÉÌÏÖÅÎÉÊ ÓÒÅÄÓÔÁÍ...doc
Скачиваний:
6
Добавлен:
18.11.2019
Размер:
2.02 Mб
Скачать

Запись макроса

Пример

Пусть требуется рассчитать размер вклада через год при условии, что первоначальная сумма составляла 10 тыс. рублей и вклад был открыт под 10,5% годовых с ежемесячным начислением процентов.

Включите запись макроса командой Сервис-Макрос-Начать запись (Tools-Record Macro-Record New Macro).

В поле Имя макроса (Macro Name) введите имя будущей процедуры. По умолчанию имя состоит из слова "Макрос" ("Macro") и порядкового номера создаваемого макроса. Нажатие на OK включает запись.

Рис. 1.1. Запись нового макроса при помощи макрорекордера

В статусной строке появится сообщение Запись (Recording), а на экране возникнет панель инструментов, первая кнопка которой – Остановить запись (Stop Macro). Если этой панели на экране нет, то необходимо включить ее с помощью команды Сервис-Настройка, вкладка Панели инструментов. В списке возможных панелей инструментов пометьте Остановить запись.

Введите данные и формулы в соответствии с рис. 1.2 (a) и остановите запись макроса. Перейдите в редактор VB, нажав клавиши Alt+F11.

Созданная процедура записана в модуле Module1 с именем Макрос1. В ячейке B13 стоит формула расчета нового размера вклада по формуле сложных процентов. Ссылки на ячейки с данными записаны в стиле R1C1 и являются относительными по отношению к ячейке B13.

(a)

(b)

Рис. 1.2. Расчет размера вклада: (a) – формулы, (b) – значения

Sub Макрос1()

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

' Макрос записан 19.07.2007

Range("A10").Select

ActiveCell.FormulaR1C1 = "S"

Range("A11").Select

ActiveCell.FormulaR1C1 = "T"

Range("A12").Select

ActiveCell.FormulaR1C1 = "r"

Range("A13").Select

ActiveCell.FormulaR1C1 = "P"

Range("B10").Select

ActiveCell.FormulaR1C1 = "10000"

Range("B11").Select

ActiveCell.FormulaR1C1 = "12"

Range("B12").Select

ActiveCell.FormulaR1C1 = "10.50%"

Range("B13").Select

ActiveCell.FormulaR1C1 = "=R[-3]C*(1+R[-1]C/12)^R[-2]C"

Range("B14").Select

End Sub

Запуск макроса

Активизируйте другой рабочий лист – Лист2 и проверьте правильность выполнения тех же расчетов на новом листе. Для этого выполните команду Сервис-Макрос-Макросы (Tools-Macro-Macros).

Рис. 1.3. Меню процедур

В диалоге можно набрать имя выполняемого макроса или выбрать его из списка имеющихся макросов. Нажатие на командную кнопку Выполнить (Run) этого диалога активизирует выбранный макрос. Этот диалог можно вызвать, нажав на кнопку Выполнить макрос (Run Macro) панели инструментов Visual Basic.

Рис. 1.4. Панель инструментов Visual Basic для рабочих листов MS Excel

Для быстрого запуска макроса можно использовать "горячие" клавиши (Shortcut), задав их в диалоге Запись макроса (см. рис. 1.1) или нажав кнопку Параметры (Options) в диалоге на рис. 1.3. Задается нецифровая клавиша, нажатие которой в сочетании с клавишей Ctrl запустит макрос. Дополнительно можно использовать клавишу Shift.

При задании "горячих" клавиш в макросе автоматически появляется комментарий – сообщение о наличии таких клавиш, например, ' Сочетание клавиш: Ctrl+t.

Внимание

  • Не используйте комбинации клавиш, задействованные для других целей, так как новое назначение будет приоритетным и отменит существовавшее ранее.

Удобно связать макрос или любую процедуру с объектами рабочей книги или рабочего листа. Можно для запуска макроса

  • создать команду меню;

  • создать кнопку на панели инструментов;

  • создать кнопку на рабочем листе;

  • связать процедуру с графическим объектом.

Первые две возможности реализуются при помощи команды Вид-Панели инструментов-Настройка (View-Toolbars-Customize), вкладка Команды (Commands) (см. рис. 1.5).

После выбора в левом окне строки Макросы (Custom) справа доступны две возможности: Настраиваемая кнопка и Настраиваемая команда меню. Переместите выбранную опцию на панель инструментов или в меню соответственно. Сразу становится доступной кнопка Изменить выделенный объект. В новом диалоговом окне настройте вид кнопки или измените команду меню, затем выполните команду Назначить макрос (Assign Macro) и выберите из списка процедур нужный макрос.

(a) (b)

Рис. 1.5. Назначение макроса кнопке панели инструментов или команде меню: (a) – выбор команды меню или кнопки, (b) – команды для настраиваемой кнопки

Для привязки к графическому объекту выполните команду Назначить макрос из контекстного меню для выбранного графического объекта.

Привязка процедуры к кнопке рабочего листа подразумевает выполнение событийной процедуры нажатия на кнопку (см. Раздел 7. Пользовательские формы).