Макросы и процедуры

Макросы и процедуры. Предположим, при создании сложного макроса обнаружилось, что наряду с другими операциями он должен выполнять задачу, которая уже была записана ранее в виде другого макроса. Или предположим, что задачу, записанную как часть макроса, на самом деле удобнее использовать в виде отдельного макроса.

Что касается макроса Company Address, то, например, было бы полезно иметь возможность легко и быстро применять форматы шрифта, используемые для названия фирмы, к другим элементам в рабочем листе. В Visual Basic можно без труда разделить большой макрос на ряд небольших или из нескольких макросов создать один большой. Макрос, который используется другим макросом, называется процедурой subroutine.

Процедуры облегчают создание сложных макросов, поскольку достаточно написать только один набор инструкций, а не повторять их снова и снова. При использовании одного макроса в другом вызывается процедура, указывая ее имя. В качестве примера можно разделить макрос CompanyAddressRel на две части. 1. Необходимо переключиться в макрос CompanyAddressRel и выделить инструкции, которые форматируют название фирмы With Selection. Font. Name Arial. FontStyle Полужирный курсив. Size 14 . Strikethrough False. Superscript False. Subscript False. OutlineFont False. Shadow False. Underline xlUnderlineStyleNone. Colorlndex xlAutornatic End With 2. В меню Edit Правка выбрать команду Cut Вырезать. 3. Щелкнуть ниже инструкции End Sub в конце макроса CompanyAddressRel, затем ввести Sub CompanyFont Нажать клавишу Enter, чтобы начать новую строку. 4. В меню Edit Правка выбрать команду Paste Вставить, чтобы вставить вырезанные инструкции. Создан новый макрос CompanyFont, удалив инструкции форматирования шрифта из макроса CompanyAddressRel. Как уже отмечалось, чтобы запустить из одного макроса другой, нужно указать в нем имя вызываемого макроса.

Можно изменить макрос CompanyAddressRel, чтобы в нем использовался макрос CompanyFont. 1. Щелкнуть в конце инструкции ActiveCell. FormulaR1C1 Региональная Торговая Компания Нажать клавишу Enter, чтобы вставить новую строку. 2. Ввести CompanyFont. После этого два макроса должны иметь следующий вид Sub CompanyAddressRel ActiveCell. FormulaR1C1 Региональная Торговая Компания CompanyFont ActiveCell. Offset 1, 0. Range A1. Select ActiveCell. FormulaR1C1 Морская улица 15 ActiveCell. Offset 1, 0. Range A1. Select ActiveCell. FormulaR1C1 325611 Кузнецк, Россия End Sub Sub CompanyFont With Selection.

Font. Name Arial. FontStyle Полужирный курсив. Size 14 . Strikethrough False. Superscript False. Subscript False. OutlineFont False. Shadow False. Underline xlUnderlineStyleNone. Colorlndex xlAutomatic End With End Sub Когда будет запущен макрос Company AddressRel, нажав клавиши Ctrl a, Excel будет последовательно выполнять инструкции этого макроса, начиная с первой.

Когда Excel встретит инструкцию, вызывающую макрос Company Font, программа перейдет к первой строке этого макроса. После выполнения End Sub в конце макроса Company Font Excel возвратится к инструкции, расположенной непосредственно за вызовом Company Font в макросе Company AddressRel, и продолжит его выполнение, пока не дойдет до инструкции End Sub в конце макроса CompanyAddressRel. 2.12