Статьи из блога

Автоматическая запись макроса

Меня часто спрашивают в письмах, как создаются макросы с помощью редактора Word и как использовать коды макросов, которые я публикую в заметках.

 

В ранних записях я подробно описывал необходимый порядок действий, чтобы воспользоваться приводимыми в заметках макросами. В последнее время эта практика мною не поддерживается по разным причинам.

 

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

 

Автоматическая запись макросов в редакторе Word удобна тем, что пользователь, не вникая в программирование, может достаточно быстро и просто записать свои часто выполняемые действия и затем вызывать получившийся макрос столько раз, сколько в нем будет необходимость.

 

Для редактора Word 2003

  1. В меню Сервис наведите указатель мыши на команду Макрос и в раскрывшемся подменю выберите команду Начать запись. Откроется диалоговое окно Запись макроса:

     

    Диалоговое окно Запись макроса
  2.  

  3. В поле Имя макроса введите наименование для вашего макроса.

    Во избежание различных ситуаций с неверно отображаемыми именами макросов, записанных кириллицей, рекомендуется давать имена макросам либо английскими терминами, либо записывать имена макросов латиницей. Кроме того, имя макроса не должно содержать в себе пробелы, знаки препинания, и не должно начинаться с цифры.
  4. В этом же окне вы можете назначить для макроса кнопку на панели инструментов или сочетание клавиш, нажав соответствующую кнопку в группе Назначить макрос.
  5. Чтобы обеспечить доступность макроса в любом документе редактора Word, в поле Макрос доступен для выберите из списка строку Всех документов (Normal.dot), если у вас в этом поле выбрана другая строка.
  6. В поле Описание можно ввести любой текст, описывающий назначение записываемого вами макроса.
  7. Нажмите кнопку ОК и на экране появится небольшая панель инструментов с кнопками управления записью макроса:

     

    Панель инструментов Остановить запись

     

    С этого момента все ваши действия в редакторе Word записываются в макрос. Вы можете приостановить запись на время, если нажмете кнопку Пауза. Для продолжения записи повторно нажмите эту же кнопку. Если вы хотите закончить запись макроса нажмите кнопку Остановить запись.

  8. Выполните необходимые действия, которые должны быть записаны в макрос.

 

Для редактора Word 2007

  1. Перейдите на вкладку ленты Разработчик. Если этой вкладки на вашей ленте нет, откройте окно Параметры Word и на вкладке Основные установите флажок на параметре Показывать вкладку «Разработчик» на ленте.
  2. На вкладке Разработчик в группе команд Код нажмите кнопку Начать запись. Откроется диалоговое окно Запись макроса, как на первом рисунке.
  3. Выполните шаги 2-7, описанные выше для версии редактора Word 2003.

Вы можете остановить запись макроса используя управляющие кнопки в строке состояния редактора: в ней будет отображаться набольшая кнопка, нажатие на которую равнозначно нажатию кнопки Остановить запись в группе команд Код.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Еще записи по вопросам использования Microsoft Word:

Комментариев: 19

  1. Люба
    29.11.2007 в 15:59 | #1

    В Word 2007 при записи макроса команды на ленте не записываются в макрос. Как быть?

  2. 29.11.2007 в 19:35 | #2

    Люба, не совсем ясно, что вы делаете. Какие именно команды?

  3. Люба
    30.11.2007 в 16:47 | #3

    В документе Word 2007 вставлена диаграмма Excel, снизу диаграммы находится таблица с данными для диаграммы. Пыталась записать в макрос следующие действия

    - выделить в таблице ячейки с данными

    - копировать

    - выделить диаграмму

    - Работа с диаграммами - Конструктор - Изменить данные

    - установить курсор в нужную ячейку

    - вставить

    - закрыть Excel

    Начиная с команды "Работа с диаграммами - Конструктор - Изменить данные"

    ничего в макрос не записалось.

  4. mara
    25.07.2008 в 07:36 | #4

    я спрашивала письмом, но ответа не получила - спрошу здесь. Периодически мне поступают тексты с одинаковыми ошибками (от каждого исполнителя свой набор), под каждого я записала макрос. записывала именно так, как в этой статье; а записываемые действия - нажатие контрол+h и введение чего менять - на что. при этом некоторые регулярные выражения нужно сделать жирным написанием - в нижней строке замены добавляю контрол+b. При запуске макроса вносятся все изменения, кроме выделения жирным (офис-2003). В чем проблема?

  5. 25.07.2008 в 09:00 | #5

    mara, извините, если не ответил (не помню вашего письма,увы...), стараюсь отвечать всем, но возможны и задержки.

    Что касается вашего вопроса, то если вам нужно применить к какому-либо искомому фрагменту текста полужирное начертание, то в поле "ЗАменить" нужно использовать формат шрифта или стиль (кнопка Формат - команда Шрифт или Стиль). Поле будет иметь такой вид примерно: http://clip2net.com/page/m0/257735

  6. Елена
    30.09.2008 в 07:55 | #6

    Присоединяюсь к вопросу marы. Ссылка, которую Вы указали, к сожалению, указывает на страничку с ошибкой. У меня приблизительно та же проблема. Мне в ТВ-программе нужно выделить полужирным время. Записываю макрос: вызываю окно замены; найти: ^#^#.^#^# (любые 4 цифры, разделённые точкой); заменить: ^& ctrl-B (искомый текст полужирный); заменить всё; остановка записи. Этот макрос почему-то не хочет работать. Подскажите, пожалуйста, в чём ошибка.

  7. 30.09.2008 в 10:24 | #7

    Елена, поскольку все операции поиска и замены как правило индивидуальны и зависят от реального текста, то приведите пример (разместите где-нибудь ваш документ и дайте на него ссылку).

    Но в вашем случае я не использовал макрос и у меня все получилось как надо:

    в поле Найти я ввел то же, что и вы: ^#^#.^#^#

    в поле Заменить я ввел символ искомого текста: ^&

    далее для поля Заменить я выбрал формат Шрифт: полужирный (через кнопку Формат - Шрифт).

    Все нашлось и заменилось.

    Если же надо использовать именно макрос, то в автоматическом режиме записать его с нужной функцией выделения найденного текста полужирным начертанием не удастся. Это нужно вручную прописывать:

    Sub boldTime()
    Dim rng As Range
    Set rng = ActiveDocument.Range
    With rng.Find
       .ClearFormatting
       .Forward = True
       .Text = "^#^#.^#^#"
       .Execute
       While .Found
          rng.Font.Bold = True
          .Execute
       Wend
    End With
    End Sub

  8. Елена
    30.09.2008 в 21:15 | #8

    Спасибо, Антон! Это то, что нужно.

    Один только маленький вопросик. Извините уж за бестолковость. А как назначить этому макросу сочетание клавиш? В вашей статье на эту тему написано последним пунктом "назначьте", а каким образом - не понятно.

  9. 01.10.2008 в 09:19 | #9

    Елена, вот спец.заметка на эту тему:

    Как назначить сочетания клавиш для макросов

  10. Елена
    01.10.2008 в 10:44 | #10

    Огромное спасибо!

  11. Vovo
    28.10.2008 в 15:15 | #11

    Когда-то был создан макрос для Word 6, попытка запустить его в Word 2003 успехом не увенчались - почему?

  12. Виталий
    23.12.2008 в 19:07 | #12

    Антон! Большое спасибо! Ради Бога простите, что назвал Вас "Сергеем".

    С Уважением, Виталий

  13. 911
    11.02.2009 в 17:51 | #13

    Антон, добрый день! Не подскажите, возможно ли постоянное выполнение макроса Excel при изменении данных в книге (как формула), а не только при открытии книги или принудительно?

  14. 11.02.2009 в 19:00 | #14

    Увы, я не спец в таблицах и рекомендую вам задать этот вопрос Алексею Шмуйловичу, автору сайта по Excel. Вот ссылка: http://forum.msexcel.ru/microsoft_excel-b1.0/

  15. 11.02.2009 в 20:32 | #15

    Антон, добрый день! Не подскажите, возможно ли постоянное выполнение макроса Excel при изменении данных в книге (как формула), а не только при открытии книги или принудительно?

    Возможно, нужно ваш макрос записать в событие Workbook_Change. У него есть параметр Target, который возвращает ячейку, в которой произошло изменение.

  16. Андрей Котов
    13.02.2009 в 12:59 | #16

    Антон, добрый день! Проблемы с записью макроса в EXCEL 2007. Нужно было записать действия при перемещении диаграммы по листу. Пишет только

    ActiveSheet.ChartObjects("Chart 13").Activate

    и больше ничего. Ни перемещение, ни изменение размеров не отразилось. Есть какие-нибудь мысли по этому поводу?

  17. 13.02.2009 в 17:26 | #17

    Увы я не спец по Excel. Могу порекомендовать вам задать этот вопрос на специальный сайт, посвященный работе с электронными таблицами: http://forum.msexcel.ru/microsoft_excel-b1.0/

  18. Еатерина
    13.12.2010 в 21:50 | #18

    помогите пожалуйста,у меня вот такая проблема,мне нужно выполнить макрос,который бы зачеркивал 3 слова(текущее,предыдущее и последующее)

  19. 03.05.2011 в 22:42 | #19

    А можно ли сделать макрос, который будет вставлять слова из одного документа в другой в определенном месте?

Оставьте комментарий!

(обязательно)

^ Наверх