Макросы Word

Эти удобные макросы Word

Чем они полезны переводчикам?

Бывают вещи старые, но не устаревшие и вполне функциональные. Например, макросы Word.

Использовала их в работе еще в начале 2000-х, потом забросила. Теперь же после вебинара IAPTI решила, что напрасно я так с ними.

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

Поэтому создам себе пару полезных макрокоманд, а заодно оставлю инструкции здесь.

Подготовка макроса

Создание любого макроса сводится к трем шагам (меню Вид > Макросы / View > Macros).

— Укажите имя для макроса: например, Cleaning. (Важный момент: в имени макроса недопустимы пробелы.)
— Укажите, где будет выполняться этот макрос: выберите кнопку. (Ее можно поместить на панель задач или связать с клавиатурой.)
— Укажите, что будет выполняться после нажатия кнопки: запись всех действий пользователя.

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

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

Предварительный список действий выглядит так:

  • удаление двойных и лишних пробелов;
  • удаление пробелов после открывающих скобок;
  • удаление пробелов перед закрывающими скобками;
  • удаление пробелов перед пунктуационными знаками;
  • удаление лишних символов табуляции в начале абзаца.

Подготовив список и открыв новый документ, выполните команду Запись макроса (Record Macro) из того же меню. Введите имя и не забудьте выбрать подходящий значок для макроса, когда добавите его на панель задач (кнопка Изменить / Modify). Word перейдет в режим записи: возле указателя мыши появится кассета (все та же, что и 15 лет назад).

Открываем окно Найти и заменить (Find and Replace), щелкаем на кнопке Больше (More). В раскрывающемся списке Специальный (Special) находим опцию Пустое пространство (White spaces). Заменяем на один пробел и выполняем Заменить все (Replace All). Важный момент: появившееся оповещение закрываем только кнопкой ОК.

Следующим пунктом в поле Найти (Find what) идут пробел перед точкой — заменяем на точку, пробел перед запятой — на запятую, затем все остальные интересующие нас знаки. И далее по списку: скобка с последующим пробелом > скобка, пробел и последующая скобка > скобка. Удаляем лишние символы табуляции в начале абзаца: знак абзаца, знак табуляции (специальные > ^p^t) заменить знаком абзаца.

Закончив все необходимые замены, закрываем диалоговое окно. Выполняем Макрос > Остановить запись (Macros > Stop Recording).

Редактирование макроса

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

Для редактирования готового макроса снова выполняем Вид > Макросы > Макросы. Выбираем нужный макрос, щелкаем на кнопке Изменить (Edit) — и видим язык программирования Visual Basic.

Но все не так печально, как сдается. Несложно заметить, что код макроса состоит из сходных повторяющихся фрагментов.

В моем случае фрагмент начинается с Selection.Find.Execute Replace:=wdReplaceAll и заканчивается на End With.

Копируем и вставляем фрагмент замены, меняем знак на двоеточие, закрываем окно. Обновления сохраняются автоматически. Готово и работает!

Скриншот 2016-08-14 15.42.32

По тому же принципу убираем из макроса лишние пункты, если они бесполезны или мешают.

Экспорт и импорт макросов

Готовый макрос можно отправить другому пользователю, просто скопировав его из окна Microsoft Visual Basic и вставив в новый документ Word. Достаточно помнить, что любой макрос начинается с кода Sub и заканчивается на End Sub.

Получив такой текст, заходим в уже знакомое меню Макросы и создаем новый макрос, присвоив ему имя. Копируем и вставляем присланный текст. Все.

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

Сам код был опубликован в журнале «Мир ПК» еще в прошлом тысячелетии. Позже переработан Алексеем Мурзовым для корректной работы в новых версиях Word. Идея проста: слово из латинских букв мы считаем английским, из русских – русским.

Создаем по уже знакомой схеме макрос, даем ему осмысленное имя (например, FixLanguages). Вставляем следующий код:

‘Attribute VB_Name = «PrepForSpell»
Sub PrepForSpell()
‘Attribute PrepForSpell.VB_Description = «Macro created 31.01.2002 by nnnnnn»
‘Attribute PrepForSpell.VB_ProcData.VB_Invoke_Func = «Normal.NewMacros.PrepForSpell»

‘ PrepForSpell Macro
‘ Macro created 31.01.2002 by nnnnnn
‘ Adoption for Word 2003/2007 by Alexey Murzov

With Selection
.WholeStory
.LanguageID = wdRussian
.NoProofing = False
.HomeKey Unit:=wdStory
n1 = 0
w1 = «a»
se1 =.End
se2 = -1
Do While se1 <> se2
w1 = Left(Trim(.Words(1)), 1)
If w1 <> «» Then
n1 = Asc(w1)
If (n1 >= 65 And n1 <= 90) Or (n1 >= 97 And n1 <= 122) Then
.Words(1).LanguageID = wdEnglishUS
.Words(1).NoProofing = False
End If
End If
.MoveRight Unit:=wdWord
se2 = se1
se1 =.End
Loop
End With
Application.CheckLanguage = True
If se1 = se2 Then MsgBox «Fixing Eng/Rus language finished.», vbInformation, «»
End Sub

Добавляем кнопочку для нашего макроса на панель инструментов. Как же я по нему скучала!

Скриншот 2016-08-14 17.52.18

Чтобы забрать свои макросы на другой компьютер, их достаточно внедрить в созданный пустой документ. Для этого в меню Макросы выберите опцию Организатор (Organizer). В левой части окна вы увидите свой документ, в правой — все макросы текущего шаблона, собранные в одной опции.

Копируете макросы в новый документ и сохраняете его в формате Документ Word c поддержкой макросов / Word Macro-Enabled Document (.docm). Открывая документ, не забудьте предупредить систему безопасности о том, что макросы нужно запустить.

И последнее. Чтобы работать с макросами, нужно внести соответствующие изменения в параметры Word, иначе ничего не выйдет: Параметры Word > Параметры центра управления безопасностью > Включить все макросы (Word Options > Trust Centre > Trust Centre Settings > Enable all macros). Защитой от потенциально опасного кода должен заниматься не текстовый процессор, а качественное антивирусное ПО.

В любом случае, новые/неизвестные макросы требуют той же осторожности, что и новые программы. Просматривайте код, прежде чем внедрять и выполнять такие макросы. Создавайте макросы сами или берите их из надежных источников. Один из таких — сайт известнейшего специалиста по макросам: http://www.archivepub.co.uk/macros.html.

* * *

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

Упорядочивание списка

После перевода длинного перечня стран их можно легко упорядочить по алфавиту. Само собой, такой макрос работает не с целым документом, а только с выделенным фрагментом, который мы и указываем при записи.

Начинаем запись макроса. С помощью команды Найти и заменить (Find and Replace) меняем в абзаце с перечнем запятую на знак абзаца (^p). Превратив текст в список, упорядочиваем его по алфавиту командой Сортировка текста (Sort Text).

Заменяем знак абзаца обратно на запятую — готово!

No Comments

Post a Comment