Допустим нам требуется распечатать исходный текст некого документа, да не просто, а красиво. Например, хочется выделить в тексте документа текст в фигурных скобках курсивом.
Для документа, занимающего несколько страниц, вручную выделять все такие тексты — долго и утомительно. Так давайте напишем макрос!
Создание макроса
Итак, начнем: меню Сервис — Макрос — Начать запись.
Делаем доступным макрос для всех документов и приступаем к записи нажав кнопку ОК.
Производим переход в начало файла — жмем Cntrl + Home. Вызываем меню Найти и заменить, вводим текст для поиска " и жмем Найти. На первом найденном символе закрываем окно поиска. Далее, держа нажатой клавишу Shift, стрелками курсора выделяем текст внутри фигурных скобок включая символ ">". После этого делаем начертание выделенного текста курсивом.
Останавливаем запись макроса.
Теперь идем в редактор Microsoft Visual Basic (Сервис — Макрос — Редактор Visual Basic) и ищем там наш макрос. Он имеет следующий вид:
re>Sub Макрос1() ‘ ‘ Макрос1 Макрос ‘ Макрос записан 11.11.2007 ‘ Selection.HomeKey Unit:=wdStory Selection.Find.ClearFormatting With Selection.Find .Text = "
Удалив лишнее получим следующий текст макроса:
re>Sub Макрос1() ‘ ‘ Макрос1 Макрос ‘ Макрос записан 11.11.2007 ‘ Selection.HomeKey Unit:=wdStory Selection.Find.ClearFormatting Selection.Find.Text = "
Теперь добавим цикл по символам для нахождения ">" и выделим необходимое число символов для форматирования в начертание курсивом:
re>Sub Макрос1() ‘ ‘ Макрос1 Макрос ‘ Макрос записан 11.11.2007 ‘ Selection.HomeKey Unit:=wdStory Selection.Find.ClearFormatting Selection.Find.Text = " ">" Selection.MoveRight Unit:=wdCharacter, Count:=1 i = i + 1 Wend Selection.MoveRight Unit:=wdCharacter, Count:=1 i = i + 1 Selection.MoveLeft Unit:=wdCharacter, Count:=i, Extend:=wdExtend Selection.Font.Italic = True Selection.MoveRight Unit:=wdCharacter, Count:=1 End Sub
Осталось добавить цикл по всему документу:
re>Sub Макрос1() ‘ ‘ Макрос1 Макрос ‘ Макрос записан 11.11.2007 ‘ Selection.HomeKey Unit:=wdStory Selection.Find.ClearFormatting Selection.Find.Text = " ">" Selection.MoveRight Unit:=wdCharacter, Count:=1 i = i + 1 Wend Selection.MoveRight Unit:=wdCharacter, Count:=1 i = i + 1 Selection.MoveLeft Unit:=wdCharacter, Count:=i, Extend:=wdExtend Selection.Font.Italic = True Selection.MoveRight Unit:=wdCharacter, Count:=1 Wend End Sub
На этом все. Макрос готов к работе.
Переименование макроса
- В меню Сервис выберите команду Шаблоны и надстройки.
- Нажмите кнопку Организатор.
- Откройте вкладку Макросы.
- Для документа или шаблона в поле В выберите макрос, который необходимо переименовать, и нажмите кнопку Переименовать.
- В диалоговом окне Переименование введите новое имя.
- Нажмите кнопку OK, а затем — кнопку Закрыть.
Удаление макроса
- Удаление отдельного макроса
- В меню Сервис выберите команду Макрос, а затем — команду Макросы.
- Выберите имя макроса, который требуется удалить, в списке Имя.
- Если нужного макроса нет в списке, выберите другой документ или шаблон в списке Макросы из.
- Нажмите кнопку Удалить.
- Удаление проектов макросов
- В меню Сервис выберите команду Макрос, а затем — команду Макросы.
- Нажмите кнопку Организатор.
- На вкладке Макросы выберите проект макроса, который требуется удалить из какого-либо списка, а затем нажмите кнопку Удалить.
- Проекты макросов, которые используются в активном документе, выводятся в списке слева, а проекты макросов в шаблоне Normal.dot — в списке справа.
Определения
Макрос
Действие или набор действий, используемые для автоматизации выполнения задач. Макросы записываются на языке программирования Visual Basic для приложений (VBA).
Шаблон
Файл или файлы, содержащие структуру и инструменты для создания таких элементов законченных файлов как стиль и макет страницы. Например, шаблоны Microsoft Word позволяют создавать отдельные документы, а шаблоны Microsoft FrontPage — целые веб-сайты.
Проект макроса
Совокупность компонентов, в том числе форм, текста программы и модулей классов, которые составляют макрос. Проекты макросов, созданные в редакторе Microsoft Visual Basic для приложений, можно включать в надстройки и большинство приложений Microsoft Office.
Шаблон Normal.dot
Универсальный шаблон для любых типов документов. Для изменения стандартного форматирования или содержимого документа в этот шаблон можно внести необходимые изменения.
Активный документ.
Документ, с которым в настоящий момент выполняется работа. Ввод текста и вставка рисунков в Microsoft Word осуществляются в активном документе. Область заголовка активного документа выделена цветом.
Пишем макросы для Microsoft Word like a PRO [Часть 1]
Возможно, у вас есть ощущение, что тема макросов в Ворде достаточно маргинальная. Кто ими может пользоваться-то вообще? Ну, малварь делают иногда. Да и пишутся они на давно забытом VBA (Visual Basic for Applications, он же несколько урезанный Visual Basic 6 в интерпретируемом виде), фу!
Но на самом деле у многих ведь возникает потребность то какой-нибудь отчётик в ворде написать, то курсовую оформить, то резюме перед отправкой в компанию вашей мечты подправить. А у некоторых работа напрямую связана с Word. Часто различные системы документации предлагают экспорт в форматы doc или docx, которые нужны вашим заказчикам. И бывает, что документы после экспорта выглядят фигово, приходится их исправлять.
Работа в ворде нередко подразумевает выполнение каких-то однообразных повторяющихся действий, которые иногда (но далеко не всегда!) решаются грамотной настройкой стилей и их применением, а также использованием шаблонов. Как же автоматизировать всё остальное? Тут-то нам на помощь приходят те самые макросы.
Что же в них такого хорошего? Ну, например, они автоматически и достаточно быстро выполняют за вас однообразные действия. Могут что-то подсчитать, переформатировать документ, пометить аннотациями подозрительные места, — словом, всё, что запрограммируете. Могут даже в режиме реального времени что-то исправлять и о чем-то предупреждать, пока вы пишете документ. VBA в Word позволяет автоматизировать практически все действия, которые вы можете выполнить с документом вручную.
Макросы можно прикрепить как к конкретному документу (в чём для нас мало пользы, а для писателей троянов это единственная опция), так и к самому ворду, что позволяет применять макросы к любому документу, с которым вы работаете.
Макросы работают в любой версии Word и требуют минимум правок при переносе с одной версии на другую (а чаще всего вообще не требуют). На макросах можно даже реализовать полноценный пользовательский интерфейс с формами!
Давайте же занырнём в Visual Basic и напишем что-нибудь полезное! В качестве первого примера я покажу, как сделать макрос, который заменит два и более последовательных перевода строки на единственный. Это часто требуется при исправлении документов после экспорта из систем документации, или если вы хотите удалить случайно проставленные лишние переводы строк в собственноручно написанном документе. Макрос сделаем добротный, с пользовательским интерфейсом и прогрессом выполнения операции.
Чтобы начать писать или использовать макросы, сначала требуется убедиться, что в Word’е отображается панель "Разработчик" ("Developer"). Если она у вас не отображается, следует зайти после создания нового документа в меню "Файл" ("File") -> "Параметры" ("Options") -> "Настроить ленту" ("Customize Ribbon"), после чего найти там и установить флажок "Разработчик" ("Developer").

После этого нужно зайти на вкладку "Разработчик" и выбрать меню "Visual Basic".

В открывшемся окне слева вы увидите два проекта: "Normal" и проект, относящийся к текущему открытому документу. Возможно, в проекте "Normal" у вас уже будет какой-то файл в каталоге "Modules". В любом случае, создайте новый модуль, кликнув правой кнопкой по проекту "Normal" и выбрав "Insert" -> "Module".

Созданный модуль представляет из себя файл, куда мы и будем писать код макросов. Можно переименовать модуль (по умолчанию его имя будет "Module1") в окне "Properties" -> "Name". Я назову свой модуль "AllMacros". Теперь откроем код модуля, дважды кликнув по его имени, и приступим к созданию макроса.
Напомню, что наша цель — заменить два и более последовательных перевода строки на единственный, произведя замены по всему документу. Очевидно, нам потребуется функция, которая осуществляет поиск по тексту, ведь мы хотим найти несколько последовательных переводов строки. В Word это эквивалентно началу нового параграфа. Вы могли бы осуществить поиск начала нового параграфа через обычное окно поиска, введя в поле поиска ^p , ^13 или ^013 (что соответствует ASCII-коду перевода строки). Функция поиска будет выглядеть так:
Грамотная работа с макросами в Word
Набор возможностей текстового редактора Microsoft Word действительно очень широк. С помощью этой программы можно решать множество задач, которые возникают при работе с текстовыми документами любой направленности, что и делает этот продукт таким популярным. В Word реализована даже небольшая среда для программирования, с помощью которой можно значительно облегчить себе работу.
В самом редакторе это называется макрокомандой или, как называют чаще, макросом. К сожалению, многие пользователи избегают знакомства с эти инструментом, ошибочно полагая, что это что-то сложное и не особо нужное. В этой статье подробно рассмотрим, как создать макрос в Word, что это вообще такое и почему вы делали неправильно, не пользуясь макрокомандами. Давайте разбираться. Поехали!
Что это такое
Макрокоманда — это, по сути, небольшая программа, которая позволяет автоматизировать и облегчить работу с текстом. В большинстве продуктов Microsoft реализована функция, сохраняющая историю действий пользователя, наиболее часто используемые инструменты и прочее.
Всё это можно перевести в формат команд, и вместо того, чтобы каждый раз делать одно и то же, вы просто нажмёте клавишу на клавиатуре, и Word всё сделает за вас. Удобно? Ещё бы! На самом деле, это совсем не сложно. Далее в статье по порядку о том, как создать макрос.
Макросы позволяют выполнять несколько основных функций. Они предназначены для реализации следующих задач:
- Ускоряют часто выполняемые процедуры и операции внутри текстового редактора Word. Это относится к редактированию, форматированию и не только.
- Объединяют несколько команд в цельное действие «от и до». Как пример, используя макрос, можно простыми движениями моментально вставить таблицу, которая будет иметь определённые заданные размеры, а также получит нужное число столбцов и строк.
- Упрощают получение доступа к некоторым функциям и инструментам для работы с текстом, графиков и пр. При этом они могут располагаться в разных окнах и разделах программы.
- Автоматизируют сложные последовательные операции и действия.

Последовательность используемых макросов может быть создана буквально с нуля. Для этого потребуется ввести соответствующий код в редактор Visual Basic.
Создание макроса
Алгоритм действий при создании команды следующий:
- Определить порядок действий.
- Выполнить.
- Записать действия в макрос.
Например, вам нужно выделить жирным шрифтом часть текста в таблице. Для записи команды придётся использовать горячие клавиши — комбинации для каждого инструмента вы можете подсмотреть, наведя курсор на нужный инструмент.

Допустим, нужная вторая колонка. Перемещение между столбцами таблицы осуществляется при помощи клавиши «Tab». Вы нажимаете «Tab» необходимое количество раз, пока не дойдёте до нужной колонки. Затем, если вам нужно выделить часть содержимого ячейки, снимаете выделение, нажав стрелку влево. Далее выделим два слова из ячейки.
Выполните комбинацию Ctrl+Shift и нажмите стрелку вправо дважды (либо столько раз, сколько слов необходимо выделить). И последний шаг — сделать выделенную область полужирной с помощью комбинации Ctrl+B.
Теперь, определившись с порядком действий, запишите макрокоманду. Для этого, перейдите на вкладку «Вид» и отыщите в панели инструментов кнопку «Макросы». Кликнув по ней, вы увидите маленькое меню, в котором нужно выбрать пункт «Записать макрос». В появившемся окне введите название для команды и нажмите на кнопку «Записать».
Сразу после этого, возле курсора появится иконка с кассетой, свидетельствующая о том, что началась запись. Выполните чётко по порядку все необходимые действия (в этом примере для выделения полужирным шрифтом нескольких слов из ячейки таблицы). После того как вы всё сделали, нажмите на значок «Стоп» (квадратик) в нижней части окна программы. Всё, макрос готов.
Как записать макрос
Если следовать пошаговой инструкции, с самостоятельной записью макросов даже у начинающего пользователя проблем возникнуть не должно.




Алгоритм действий можно представить в таком виде:
- В зависимости от того, какая версия текстового редактора Word используется, откройте вкладку «Разработчик» или «Вид», где располагается кнопка «Макросы». Нужно просто кликнуть по пункту «Запись макроса».
- У каждого макроса должно быть своё имя. Его можно задать сугубо на собственное усмотрение. Это на его функциональность никак влиять не будет.
- Если дать макросу точно такое же имя, как и у стандартных макросов в программе Word, он будет выполнять его функции вместо основного. Поэтому не поленитесь заглянуть в меню «Макросы» и открыть раздел «Команды Word». Здесь прописаны все стандартные названия.
- В строке, которая называется «Макрос доступен для» нужно выбрать, для чего именно он будет доступен.
- В графу с описанием нужно ввести собственное описание создаваемого макроса.
- Далее можно кликнуть на «Начните запись», либо же «Создайте кнопку». В первом случае запись макроса начнётся без его привязки к кнопке на панели управления или клавиатуре. Во втором макросу будет задана соответствующая клавиша или кнопка.
- Добавьте один или несколько документов, куда следует добавить новый макрос. Это делается через «Параметры Word» во вкладке «Панель быстрого доступа».
- В левом окне выберите нужный макрос для записи и кликните по кнопке «Добавить».
- Для изменения настроек этой кнопки всегда есть возможность кликнуть на «Изменить».
- Далее выбирайте символ, который хотите использовать для кнопки.
- Укажите имя. Именно оно будет затем отображаться в соответствующем поле.
- Дважды кликните ОК, чтобы начать запись макроса.
- Когда потребуется остановить запись, жмите соответствующую клавишу в меню «Макросы».






Записанный макрос в дальнейшем можно будет использовать на своё усмотрение.
Использование макросов
Как же всё это использовать? А очень просто: в панели инструментов нажмите кнопку «Макросы» и одноимённый пункт в появившемся меню — перед вами откроется список всех макросов. Выберите сохранённый вами и нажмите «Выполнить». Существует более удобный вариант — создать специальную кнопку в панели инструментов.
Делается это следующим образом: перейдите в меню «Файл», затем «Параметры» и кликните по пункту «Панель быстрого доступа». В разделе «Выбрать команды из:» укажите «Макросы» и выберите из них требуемый. После этого кликните по кнопке «Добавить». Вы можете назначить иконку, которая будет отображаться для этой кнопки. Готово.
В ленте инструментов появится соответствующая иконка, нажатием на которую вы запустите записанный вами алгоритм действий.


Создать макрокоманду можно практически для чего угодно. Можно изменять абзацный отступ, межстрочные интервалы, выровнять области текста, выполнить расчёт заданных значений, или настроить автоматическое заполнение таблицы. Нажмите «Записать макрос» и кликайте мышкой, вызывая соответствующие меню и задавая необходимые значения. Только не выделяйте текст мышкой, для этого лучше использовать горячие клавиши или специальный инструмент программы. Как только всё будет сделано, остановите запись.
Подобные команды могут содержать любое количество шагов и быть любого уровня сложности. Процесс создания макрокоманд одинаковый и для Word 2007, и для Word 2010, и для версии Word 2013.
Как видите, процесс достаточно простой, а инструмент очень эффективный. Главное, чётко определить алгоритм выполняемых действий. Научившись использовать макросы, вы значительно облегчите себе работу и сможете эффективнее и быстрее решать многие задачи, работая с текстовыми документами. Пишите в комментариях, помогла ли вам эта статья и задавайте любые интересующие вопросы по рассмотренной теме.




