Вставка инструкций в существующий макрос

Вставка инструкций в существующий макрос. Предположим, что записан макрос, который вводит ряд заголовков, устанавливает для них шрифт и рисует рамку. Затем обнаружилось, что пропущен какой-то шаг или записан неправильно, например применен не тот тип границы. Что делать в этом случае Предыдущие версии Excel позволяли вносить изменения в существующий макрос посредством дозаписи в него последовательности действий, начиная с заданной позиции, с помощью команд Отметить позицию Mark Position For Recording и Записать с отметки Record At Mark. В последней версии среды Visual Basic эти средства не поддерживаются.

Чтобы добавить инструкции в существующий макрос, нужно записать действия во временный макрос и затем скопировать инструкции из него в изменяемый макрос.

Например, чтобы добавить в макрос CompanyAddress шаг, который устанавливает шрифт для названия фирмы, выполните описанные ниже действия. 1. Переключиться в лист, содержащий введенный ранее адрес, и выделить ячейку А6 с названием фирмы. 2. В меню Сервис Tools выбрать команду Макрос Macro и затем Начать запись Record New Macro, чтобы открыть окно диалога Запись макроса Record Macro. Ввести MacroTernp в поле Имя макроса Macro Name и нажать кнопку ОК. Excel выведет на экран панель инструментов Остановка записи Stop Recording. 3. Выбрать в меню Формат Format команду Ячейки Font. Затем в списке шрифтов на вкладке Шрифт Font открывшегося окна диалога выбрать шрифт Arial или другой установленный шрифт размером 14 пунктов и указать полужирный курсив.

Затем нажать кнопку ОК, чтобы применить эти форматы. 4. Нажать кнопку Остановить запись Stop Recording на панели инструментов Остановка записи. 5. В меню Сервис выбрать команду Макрос и затем Редактор Visual Basic Visual Basic Editor. Если окно проекта отсутствует на экране, в меню View Вид выбрать команду Project Explorer Окно проекта.

Окно проекта содержит список объектов, принадлежащих активной книге три листа, объект, представляющий книгу в целом, и один модуль. 6. Дважды щелкнуть на строке Module1. Появится окно, содержащее записанные макросы, в соответствии с рисунком 18. Прокрутить его вниз, чтобы вывести на экран весь текст макроса MacroTemp. Рисунок18 Макрос MacroTemp, содержащий только что записанные инструкции 7. Выделить в макросе все строки конструкции With End With и затем в меню Edit Правка выбрать команду Copy Копировать. 8. Прокрутить окно вверх, чтобы вывести на экран макрос Company Address. 9. Щелкнуть в начале строки, содержащей инструкцию Range A7. Select Затем нажать клавишу Enter, чтобы вставить пустую строку, и укажите точку вставки, щелкнув в начале пустой строки. 10. В меню Edit Правка выбрать команду Paste Вставить. 11. Прокрутить окно вверх и удалить весь макрос CompanyAddress от инструкции Sub до инструкции End Sub. 12. Наконец, в меню View Вид выбрать команду Microsoft Excel, чтобы переключиться в Excel. Можно проверить работу измененного макроса, нажав клавиши Ctrl Shift A. Теперь макрос не только вводит адрес, но также применяет заданные форматы шрифта.

Ниже представлен исходный текст макроса CompanyAddress Sub CompanyAddress Range A6. Select ActiveCell. FormulaR1C1 Региональная Торговая Компания With Selection.

Font. Name Arial. FontStyle полужирный курсив. Size 14 . Strikethrough False. Superscript False. Subscript False. OutlineFont False. Shadow False. Underline xlUnderlineStyleNone. Colorlndex xlAutomatic End With Range A7. Select ActiveCell. FormulaR1C1 Морская улица 15 Range A8. Select ActiveCell. FormulaR1C1 325611 Кузнецк, Россия End Sub Конструкция With End With задает ряд свойств объекта, в данном случае шрифта текущего выделения.

Эта конструкция позволяет использовать краткую форму записи последовательности инструкций Visual Basic, которые иначе имели бы следующий вид Selection.

Font, Name Arial Selection, Font. FontStyle Полужирный курсив Selection. Font. Size 14 Selection. Font. Strikethrough False Selection. Font. Superscript False и т. д. В макросе CompanyAddress оба объекта, ActiveCell и Selection, указывают на один и тот же диапазон, а именно ячейку А6. Поскольку ряд параметров форматирования шрифта можно применить к целому диапазону, то Excel использует ключевое слово Selection вместо ActiveCell. 2.10