Что записал макрорекодер? Как увидеть макрос? Чтобы отобразить на экране макрос в редакторе Visual Basic в любом приложении Ms Office выберите команду Строка меню Сервис Макрос Макросы, в диалоговом окне выберите нужный макрос и нажмите кнопку Изменить. Увидим макрос с программным кодом: Sub Макрос#() ‘вместо # у вас в имени макроса может стоять любая цифра Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend Selection.Font.Color = wdColorGreen Selection.MoveDown Unit:=wdParagraph, Count:=1 End Sub При записи каждого следующего макроса макрорекодер нумерует его автоматически. Если вручную попытаетаться изменить предложенное имя на уже имеющееся, то редактор спросит, хотите ли вы заменить макрос. Обратим внимание: записанные за один сеанс в виде команд действия помещены в процедуру с заголовком Sub Макрос#() и концом процедуры - End Sub. Откроем макрос и рассмотрим каждую его строчку, помня о своих действиях при записи макроса. Сначала мы выделили слово: Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend Зная несколько английских слов можно так расшифровать записанную команду: Selection – выделение Move – двигаться, Right – направо Unit – единица Count – количество Extend –протянуть, растягивать Команда выделяет одно слово справа от курсора, растягивая область выделения от нулевой до области размером в одно слово. Проверим, правильно ли наше предположение: изменим строку, напишем Count:=2 и запустим макрос. Действительно, два слова изменили свой цвет. А какие ещё единицы текста бывают? Например, символ (Character) или предложение (Sentence). Попробуйте изменить текст макроса: замените wdWord на wdCharacter и выполните макрос. Затем подставьте wdSentence и посмотрите, что произойдет. Второе наше действие при записи макроса – изменение цвета слова на зелёный: Selection.Font.Color = wdColorGreen Font – шрифт Color – цвет, Green – зелёный Попробуйте вместо wdColorGreen записать wdColorRed и выполните макрос. Наконец, последняя строчка: Selection.MoveDown Unit:=wdParagraph, Count:=1 Down – вниз Paragraph – абзац Переместились на один абзац вниз. Обратите внимание, в данной команде параметр Extend отсутствует, поэтому происходит не выделение, а перемещение. Попробуйте поменять Count:=1 на Count:=2. Макрос будет обрабатывать только каждый второй абзац. Как видите, интуитивно понятно, что записал макрорекодер. В структуре записи мы разберёмся позже. Теперь же отметим только ещё один момент. Область выделения -Selection - единственна в каждом открытом окне. В первый момент она нулевая, просто точка, где стоит курсор. Область выделения может быть расширена, как в строчке Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend , где есть параметр Extend (расширение, протяжка). Если этот параметр отсутствует, то происходит переход к другой нулевой области выделения, как в строчке Selection.MoveDown Unit:=wdParagraph, Count:=1 Таким образом, что для выполнения поставленной задачи по возможности начинайте с записи необходимых фрагментов с макрорекодера. Далее, «расшифровав» эти команды, можно изменить, отредактировать макрос - то есть, доработать макрос в соответствии с поставленной задачей. Задания для самостоятельной работы. 1. Изменяйте в уже готовом макросе в окне кода параметры команд, чтобы убедиться в правильности своего понимания: a. количество единиц; b. название единицы измерения текста (буква, слово, предложение); c. перемещение вниз или вверх, влево или вправо; d. цвет текста. 2. Самостоятельно проанализируйте макросы, которые написаны в предыдущем задании. 3. Откройте документ с текстом в несколько страниц (чтобы не набирать самим). Поэкспериментируйте с текстом макроса. Создайте макрос, который будет первое предложение в каждом абзаце окрашивать в синий цвет, а первую букву этого предложения – в красный цвет. Указание: используйте возврат к предыдущей позиции курсора с помощью команды Selection.MoveLeft Unit:=нужноеЗначение, Count:=нужноеЗначение