Шаг 181.
VBA в MSExcel. Практические приемы программирования на VBA. Тема: расчет маргинальной процентной ставки. Практика (окончание)

    На этом шаге мы рассмотрим использование макрорекордера.

    При написании программ, в которых используется те или иные возможности рабочего листа, а не только VBA, часто бывает удобным вариантом воспользоваться средством MacroRecorder. Он создаст макрос, описывающий на языке VBA осуществляемые вами действия. MacroRecorder является одним из интеллектуальных средств Microsoft Office, которое облегчает работу разработчиков приложений. Конечно, создаваемый им макрос будет во многих отношениях не оптимальным, но тем не менее он даст хорошую подсказку о том, какие инструкции должны быть добавлены в программу, чтобы добиться требуемого эффекта.

    Итак, для активизации MacroRecorder выберите команду Сервис | Макрос | Начать запись (Tools | Macro | Record New Macro) и запустите MacroRecorder на запись. После задания всех параметров в появившемся диалоговом окне Запись макроса (Record Macro) и нажатия кнопки ОК, появится плавающая панель инструментов с кнопкой Остановить запись (Stop Recording). Теперь все производимые действия будут записываться до тех пор, пока не будет нажата эта кнопка.

    Сперва решите уравнение, вычисляющее маргинальную процентную ставку. В ячейку В2 введено число выплат, равное 6, ячейка B7 отведена под процентную ставку, а в ячейку B8 введена формула =ПС(B7;B2;-B4), вычисляющая текущий объем ссуды. Требуется найти процентную ставку, при которой текущий объем ссуды равен 10 000.

    Итак, MacroRecorder включен, осталось решить данную задачу вручную на рабочем листе и посмотреть на записанный макрос.

    Решите задачу в соответствии со следующим алгоритмом:

  1. Выберите команду Сервис | Подбор параметра (Tools | Goal Seek).

  2. В появившемся диалоговом окне Подбор параметра (Goal Seek) в поле Установить в ячейке (Set cell) укажите ссылку на ячейку B6, где содержится формула с левой частью решаемого уравнения. В поле Значение (То value) введите число 10 000, значение правой части решаемого уравнения. В поле Изменяя значение ячейки (By changing cell) укажите ссылку на ячейку B7, которая отведена под неизвестную в решаемом уравнении.

  3. Нажмите на кнопку ОК. Появится диалоговое окно Результат подбора параметра (Goal Seek Status) с информацией о найденном решении.

  4. Нажмите на кнопку ОК диалогового окна Результат подбора параметра (Goal Seek Status).

    Перечисленные выше действия будут переведены MacroRecorder в следующий макрос.

Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 21.01.2014 (Ксенофон Заковыркин)
'

'
    Range("B8").GoalSeek Goal:=10000, ChangingCell:=Range("B7")
End Sub

    Как видно из записанного макроса, несмотря на многошаговость процесса решения уравнения вручную, программно это решение состоит только из одной инструкции. Во избежание ошибок при написании программ, те фрагменты, которые можно создать с помощью MacroRecorder, лучше и создавать с его помощью. Потом лишь скопировать их в исходную программу, внеся требуемые изменения, если в этом возникнет необходимость.

    При написании программы данного приложения MacroRecorder может также пригодиться для задания числовых форматов в ячейках B3, В4, B5 и B7.

    Итак, для активизации MacroRecorder выберите команду Сервис | Макрос | Начать запись (Tools | Macro | Record New Macro) и запустите MacroRecorder на запись.

    Задавайте числовые форматы в ячейках B3, В4, B5 и B7 по следующему алгоритму:

  1. Выделите ячейку B3. Выберите команду Формат | Ячейки (Format | Cells). В появившемся диалоговом окне Формат ячеек (Format Cells), на вкладке Число (Number) в списке Числовые форматы (Category) выберите Денежный (Currency). В поле Число десятичных знаков (Decimal places) введите 0, а в раскрывающемся списке Обозначения (Symbol) выберите р. Нажмите кнопку ОК.


    Рис.1. Диалоговое окно Формат ячеек

  2. Выделите ячейку В4 и установите в ней числовой формат, как описано в выше.

  3. Выделите ячейку В5. Выберите команду Формат | Ячейки (Format | Cells). В появившемся диалоговом окне Формат ячеек (Format Cells) на вкладке Число (Number) в списке Числовые форматы (Category) выберите Процентный (Percentage). В поле Число десятичных знаков (Decimal places) введите 2. Нажмите кнопку ОК.

  4. Выделите ячейку B7 и установите в ней числовой формат, как описано в предыдущем пункте.

    Перечисленные выше действия будут переведены MacroRecorder в следующий макрос.

Sub Макрос2()
'
' Макрос2 Макрос
' Макрос записан 21.01.2014 (Ксенофон Заковыркин)
'

'
    Range("B3").Select
    Selection.NumberFormat = "#,##0$"
    Range("B4").Select
    Selection.NumberFormat = "#,##0$"
    Range("B5").Select
    Selection.NumberFormat = "0.00%"
    Range("B7").Select
    Selection.NumberFormat = "0.00%"
End Sub

    Созданные в данном макросе инструкции как раз и осуществляют требуемое в программе приложения форматирование.

    На следующем шаге мы продолжим разработку приложений.




Предыдущий шаг Содержание Следующий шаг