Как стать автором
Обновить

Повышаем эффективность работы с Word

Разработка для Office 365 *Копирайт Софт Подготовка технической документации *

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

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

В статье намеренно не рассматриваются подходы с использованием Markdown, Pandoc, Asciidoc, Confluence как более сложные и узкоспециализированные, а статью хотелось сделать доступной и понятной не только молодым людям, но и людям старших возрастов.

Все описанные действия выполнены в программе «Microsoft Word профессиональный плюс 2019». В предыдущих версиях Word последовательность и названия команд могут отличаться, но описанная функциональность так или иначе существует. По минимуму использованы макросы и автоматизация с помощью сторонних средств (в частности Python, использована версия 3.6).

Описанные операции

Автоматическая нумерация рисунков (таблиц)

Классическая проблема: нужно объединить 4 файла, насыщенные рисунками, в один документ. Если это делать «в лоб», после объединения нумерация рисунков собьется. Восстановить ее – большая грустная задача.

Классическое решение: поставить вместо номера рисунка текст «ХХ» и закрасить желтым цветом (желтый цвет предлагается Word по умолчанию для выделения текста). Потом, после объединения частей в один файл, руками проставить номера рисунков в порядке их очередности. Это первое, что делает нормальный человек, действуя интуитивно, и проблема не кажется сложной, пока вы не столкнетесь с документом, в котором рисунков больше сотни, и еще нужно поддерживать актуальность документа (то есть со временем добавлять или исключать рисунки с перекрестными ссылками).

Word умеет делать это автоматически, причем не только для рисунков, а еще и для таблиц, параграфов, разделов, абзацев и др.

Чтобы присвоить рисунку (таблице) номер в автоматическом режиме, нужно нажать непосредственно на рисунок (1), после чего выбрать пункт меню «Ссылки» (2) ⟶ «Вставить название» (3) ⟶ Снять галочку «Исключить подпись из названия» (4) ⟶ «Ок» (5). Под рисунком появится подпись «Рисунок 1», где 1 – это поле автоматической нумерации рисунка (таблицы) (6). Справа от номера, в зависимости от правил именования рисунков, рисунку можно дать название.

Суть данной операции в том, что если 4 человека форматировали наименования рисунков именно так, то после объединения четырех частей документа для проставления корректных номеров рисунков необходимо выделить весь текст документа (Ctrl+A) и обновить автоматические поля (F9). Все рисунки (таблицы) при этом получат правильный порядковый номер (3).

Думаете, что повторить данную процедуру для 1000 рисунков долго? Читаем ниже.

Ускоренная вставка поля автоматической нумерации рисунка (таблицы)

Для быстрой вставки поля автоматического номера рисунка (таблицы) необходимо выделить любое сформированное ранее название рисунка (таблицы) (см. пункт выше), содержащее поле автоматической нумерации (1), скопировать его, перевести курсор под нужный рисунок и вставить скопированное название (2). Название будет скопировано с полем автоматической нумерации с исходным номером. Его нужно будет обновить. Не обязательно делать это сразу. Пока скопированный текст находится в буфере обмена, можно вставить поле автоматической нумерации под всеми рисунками (таблицами) до конца документа, после чего выделить весь текст (Ctrl+A) и обновить автоматические поля (F9). Все рисунки (таблицы) при этом получат правильный порядковый номер (3).

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

Ссылка на номер рисунка (таблицы, раздела, пункта)

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

Классическое решение: сначала человек проставляет вместо номеров рисунков (объектов) «ХХ» желтым цветом, то же самое делает и для ссылок на указанные рисунки, затем проставляет номера рисунков по окончанию редактирования документа и начинает сопоставлять ссылки с рисунками, к которым они относятся.

Данный подход приходит в голову первым, однако Word и это умеет делать автоматически. Если в тексте встречаются ссылки на рисунки, то крайне полезно делать их именно ссылкой, а не вручную вписанным номером. Это позволяет отказаться от механической проверки актуальности ссылок, которые обязательно начнут сбиваться при малейшем редактировании документа, и переложить указанную работу исключительно на Word. Более того, при перестановке рисунка по тексту или же вставке новых рисунков ссылки обновляются в соответствии с обновленной нумерацией. Если вдруг ссылка дана на несуществующий объект, то вместо номера рисунка (таблицы) появится сообщение вида «Ошибка! Источник ссылки не найден.». Используя поиск, можно быстро отследить корректность всех перекрестных ссылок по фразе «Ошибка».

Для вставки ссылки на рисунок (таблицу) необходимо перевести курсор мыши в то место, где необходимо вставить ссылку (1), нажать пункт меню «Ссылки» (2), «Перекрестная ссылка» (3), выбрать из выпадающего списка тип ссылки «Рисунок» («Таблица» и т.д.) (4), из выпадающего списка выбрать то, на что вставить ссылку «Постоянная часть и номер» (5), выбрать нужный рисунок (таблицу и др.) (6), нажать кнопку «Вставить» (7). На месте (1) появится ссылка на выбранный рисунок (таблицу и др.).

Если стандартный формат вставки ссылки не подходит (например, необходимо выполнять требования ГОСТ), то можно выполнить другие действия, описанные ниже.

Изменение формата перекрестной ссылки на рисунок (таблицу, раздел, пункт)

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

Для отображения только номера объекта необходимо выделить поле ссылки (1) и нажать «SHIFT+F9», при этом откроется код ссылки (2), в него нужно дописать сочетание « \# \0 » и обязательно поставить в конце пробел (3). Чтобы увидеть номер рисунка (таблицы), необходимо обновить содержимое поля нажатием «F9» (4).

Если у Вас сложилось впечатление, что это слишком долго, то читаем ниже, как можно немного ускориться.

Ускоренная вставка ссылки на номер рисунка (таблицы)

Ускорить процесс вставки ссылок можно достаточно просто, следуя советам дедушки Сазерленда (методология Scrum), а именно: нужно выполнять одну простейшую операцию. Применительно к нашей задаче следует выделить весь текст нажатием «Ctrl+A», отобразить коды автозаполняемых полей нажатием «SHIFT+F9», открыть окно «Перекрестные ссылки» по примеру выше, после чего необходимо пролистывать документ, перенося курсор в нужные места, выбирать нужные ссылки из открытого окна перекрестных ссылок и вставлять их. Окно «Перекрестные ссылки» закрываем только тогда, когда документ отработан до конца.

По аналогии можно быстро изменить отображение перекрестных ссылок на рисунки (таблицы). Для этого выделяем весь текст нажатием «Ctrl+A», отображаем коды автозаполняемых полей нажатием «SHIFT+F9», копируем в буфер обмена текст « \# \0 » (пробел в конце обязателен) и вставляем его в конце требуемых полей. Обновляем поля нажатием «F9», когда документ обработан до конца.

Автозаполняемые поля (Экспресс-блоки) (число страниц, дата)

Классическая ошибка: этап проекта перешел на новый год, вы внесли в документ необходимые правки, закрыли документ, но забыли обновить год или число страниц на титульном листе и отправили заказчику.

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

Все это может выполняться автоматически стандартными средствами Word. В качестве примера вставим автоматическое поле числа страниц документа. Для этого устанавливаем курсор мыши туда, где необходимо вставить автозаполняемое поле (1), выбираем пункт меню «Вставить», затем «Экспресс-блоки» (2), затем «Поле» (3). Откроется окно «Поле» (4), в колонке «Поля» выбираем тип поля, в нашем примере «NumPages» (5), и нажимаем кнопку «Ок» (6). При этом в месте, где был установлен курсор (1), вставится поле, которое при обновлении (F9) поменяет значение на фактическое число страниц.

Для вставки даты вместо «NumPages» (5) необходимо найти «Date» и выбрать необходимый формат. 

Исправление съезжающей нумерации в списке при выборе "Начать заново с 1"

Классическая проблема: надо начать новый нумерованный список, но по умолчанию продолжается старая нумерация. Обычно делают так: нажимают «ПКМ», «Начать заново с 1» и первый номер съезжает к значению по умолчанию.

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

 Этого можно не делать если заранее определить отступы для нумерованного списка. Для этого необходимо нажать на первый номер нумерованного списка «ПКМ», затем «Изменить отступы в списке». Проделать это можно сразу для нескольких уровней списков, а еще лучше, если для каждого уровня списка создать отдельный стиль, что позволит быстро изменять отступы по всему документу, но об этом уже ниже.

Карта стилей

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

Классическое решение: выбирается жертва, которая приводит полученный бардак к единому виду.

Это, пожалуй, самая распространенная проблема, которая влечет за собой много нудной, монотонной и неинтересной работы по форматированию документа. Возникает она по причине того, что мало кто знает и пользуется одной из базовых возможностей Word - стилями. Правильно подготовленная карта стилей позволяет экономить уйму времени. Вы знали, что при изменении параметров существующего стиля они применяются ко всему тексту документа, который отформатирован в этом стиле?

Так вот, чтобы форматирование не занимало слишком много времени, хорошей практикой считается перед началом проекта уяснить требования к оформлению документов (например, определенных в ГОСТ или шаблонах заказчика) и собрать карту стилей хотя бы для следующих элементов:

  • Заголовок 1,2,3,4,5,6 уровней;

  • Текст;

  • Нумерованный список;

  • Список;

  • Название таблицы;

  • Текст таблицы;

  • Название рисунка;

  • Рисунок;

  • Программный код.

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

При таком подходе вставка новых материалов в документ не нарушает целостность форматирования.

Перенос стилей между документами и очистка стилей

Классическая проблема: вы отдаете документ на проверку по отделам организации. И один из сотрудников вносит свои правки в Libre в Ubuntu, а другой делает то же самое, но используя Mac. Потом документы возвращаются к вам, вы обнаруживаете в них 10000 стилей, текст в непонятных шрифтах и нарушение исходного форматирования.

Классическое решение (взято из интернета): нажимаем галочку в правом нижнем углу раздела «Стили» (или «Ctrl» + «Shift» + «Alt» + «S»), затем «Очистить стили».

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

Документ в формате *.docx - это самый обыкновенный архив, который спокойно открывается архиватором (например, WinRAR).

Чтобы открыть документ в WinRAR открываем непосредственно сам архиватор, находим искомый документ, нажимаем правой клавишей мыши и выбираем «Показать содержимое архива». Нам откроется структура папок вида: _rels, customXml, docProps, word. В большей степени нас интересует каталог «Word». Переходим в него. За стили в документе отвечает файл «styles.xml».

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

Если же есть острое желание очистить документ от всех стилей, файл «styles.xml» нужно удалить.

Если совсем не хочется открывать документ в WinRar, вот скрипт (для Windows):

@ECHO OFF
SET Winrar=C:\Program Files\WinRAR\WinRAR.exe
FOR %%I IN (*.docx) DO (
 "%WinRAR%" d "%%I" word\styles.xml
)

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

По-хорошему, чтобы не доводить до подобного, лучше сравнивать документы на предмет выявления правок, и переносить их вручную в документ с нормальным форматированием. Еще лучше ­– отдавать документ на вычитку в формате *.pdf, чтобы не нарушать правило, что изменения в документ вносит только ответственный за документацию.

Автоматическое содержание (оглавление)

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

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

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

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

Предположим, что у нас есть текст (1). Выделяем в нем нужный заголовок (для нашего примера сразу все), который можно отнести к заголовку первого уровня, и заходим в настройки абзаца (2). Для выбранных абзацев в выпадающем списке «Уровень» (3) выбираем «Уровень 1» и нажимаем «Ок» (4). То же самое проделываем для всех оставшихся абзацев, присваивая им соответствующий уровень.

После того как уровни заголовков проставлены, переходим в пункт меню «Ссылки» (1), «Оглавление» (2), «Настраиваемое оглавление» (3). Здесь в окне «Параметры» (4) можно выполнить более точную настройку параметров содержания или включить в него стили, которым не были заданы уровни. По умолчанию достаточно указать число уровней, которые должны быть перенесены в содержание, нажать «Ок» и посмотреть, все ли, что Вы хотели, оказалось в содержании.

После завершения работы с документом обновление содержание осуществляется, как и любое другое автозаполняемое поле. Необходимо выделить его и нажать «F9». Однако при работе с содержанием будет предложено два варианта: «Полностью» и «Только номера страниц». При выборе параметра «Полностью» форматирование будет сброшено и надо будет править его заново. При обновлении только номеров страниц форматирование не съезжает и выполняется только пересчет страниц.

Макрос. Обрамление выделенного текста двоеточием с обеих сторон

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

Классическое решение: открываете все документы один за одним и читаете. Все, на чем сделан акцент, выделяете кавычками.

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

Если изначально написать макрос кодом, моя сборка Word не позволяет назначить ему горячую клавишу. Это можно обойти следующим образом: переходим в пункт меню «Вид» (1), «Макросы» (2), «Запись макроса». Откроется окно «Запись макроса», где нужно ввести имя макроса и назначить его клавишам (4). Откроется окно «Настройка клавиатуры» (5), где нужно задать сочетание клавиш для выполнения макроса (например «Ctrl+2», так как кавычки задаются смежным сочетанием «Shift+2») (6), нажать «Назначить» (7) и «Закрыть» (8). Начнется запись макроса. Ее нужно остановить, для чего заходим в меню «Макросы» (2) и нажимаем «Остановить запись».

Теперь в созданный пустой макрос необходимо добавить код. Для этого переходим в «Макросы» (2), выбираем наш макрос из списка и нажимаем «Изменить». Откроется окно редактирования Visual Basic, содержимое которого необходимо заменить кодом ниже.

Sub Кавычки
'
'Кавычки макрос
'
'
If Right(Selection.Text, 1) = Chr(32) Or _
  Right(Selection.Text, 1) = Chr(13) Then
  Selection.MoveLeft wdCharacter, 1, wdExtend
End If
With Selection
  .InsertBefore Chr(171)  'вместо Char(171) можно использовать '('
  .InsertAfter Chr(187)  'вместо Char(171) можно использовать ')'
End With
End Sub

Теперь при выделении текста и нажатии «Ctrl+2» он будет обрамлен кавычками с обеих сторон.

Сравнение документов

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

 Классическое решение: узнаете у человека, что он исправил, или же открываете два окна со старым и новым документ и начинаете сравнение.

Если вы не пользуетесь программами контроля версий (SVN) вроде GIT, где изменения можно просмотреть в логах, то Word аналогично может подсветить различия двух документов.

Для этого необходимо нажать пункт меню «Рецензирование» (1), «Сравнить» (2), выбрать исходный файл (3), измененный файл (4) и нажать «ОК» (5).

Откроется новое окно Word, в котором в виде комментариев и правок будут доступны все изменения между двумя документами.

Python. Пакетное сохранение документов в PDF

Классическая проблема: передаете комплект документов, а при открытии форматирование начинает съезжать, потому что не хватило шрифтов или еще чего-то.

Классическое решение: передавать документы в формате *.pdf. Для этого вы открываете сначала один документ, нажимаете «Сохранить как», выбираете тип файла «PDF», сохраняете. И так с каждым документом.

Данную процедуру можно автоматизировать с помощью Python, и запуском одного скрипта сохранить пакет документов в формате *.pdf.

Устанавливаем Python, открываем блокнот и вставляем в него следующий код:

import sys
import os
import comtypes.client

def decode_doc_to_pdf(filename):
    wdFormatPDF = 17

    in_file = os.path.abspath(filename+'.docx')
    out_file = os.path.abspath(filename+'.pdf')

    word = comtypes.client.CreateObject('Word.Application')
    doc = word.Documents.Open(in_file)
    doc.SaveAs(out_file, FileFormat=wdFormatPDF)
    doc.Close()
    word.Quit()

def get_list_of_docx_files():
    list_of_all_files = os.listdir('.')  
    list_of_docx_files = []
    for filename in list_of_all_files:
        if filename[-4:] == 'docx':
            list_of_docx_files.append(filename[:-5])
    return list_of_docx_files

docx_list = get_list_of_docx_files()


for filename in docx_list:
    decode_doc_to_pdf(filename)

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

Список сокращений

Классическая проблема: необходимо сформировать актуальный список сокращений, использованных в документе.

Классическое решение: читаем весь документ от начала до конца, выписываем все сокращения в отдельном файле, перечитываем документ сначала на предмет корректного применения сокращения (проверяем, что сокращение не используется раньше, чем оно введено)

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

Чтобы не нарушать форматирование в основном документе, необходимо сделать его копию. В копии исходного документа необходимо сбросить все форматирование, так как
будет необходимо использовать поиск с подстановочными знаками. Далее нажимаем «Заменить» (1), затем в поле «Найти» (2) вставляем текст « <[А-Я,A-Z]@> » (« <[А-Я]@> » для поиска только русских слов в верхнем регистре). Устанавливаем чекбокс «Подстановочные знаки» (3), нажимаем «Формат» (4), выбираем «Шрифт», затем «Полужирный» и нажимаем «Ок». В строке «Заменить на» (5) появится текст « ^& », после чего нажимаем «Заменить все» (6). Все слова в верхнем регистре будут выделены полужирным шрифтом.

Далее необходимо выделить весь найденный текст в верхнем регистре. Для этого выделяем любое сокращение, отформатированное жирным, нажимаем «Выделить», затем «Выделить текст, имеющий такой же формат». Копируем выделенный текст в буфер обмена (Ctrl+C).

Отсеять слова в верхнем регистре от сокращений и дубликатов можно используя Excel. Если не знакомы с такой процедурой, то открываем Excel, вставляем скопированный текст из буфера обмена в левую верхнюю ячейку. Чтобы удалить дубликаты из получившейся колонки, выделяем ее, переходим на вкладку «Данные» и нажимаем кнопку «Удалить дубликаты».

Появится сообщение вида «Найдено и удалено….осталось». Далее с полученным списком нужно немного поработать руками.

Горячие клавиши

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

Выравнивание

  • CTRL+E - Переключение абзаца между выравниванием по центру и выравниванием по левому краю;

  • CTRL+J - Переключение абзаца между выравниванием по ширине и выравниванием по левому краю;

  • CTRL+R - Переключение абзаца между выравниванием по правому краю и выравниванием по левому краю;

  • CTRL+L - Выравнивание абзаца по левому краю.

Перемещение курсора

  • CTRL+СТРЕЛКА ВЛЕВО - На одно слово влево;

  • CTRL+СТРЕЛКА ВПРАВО - На одно слово вправо;

  • CTRL+СТРЕЛКА ВВЕРХ - На один абзац вверх;

  • CTRL+СТРЕЛКА ВНИЗ - На один абзац вниз.

Удаление слова

  • CTRL+BACKSPACE - Удаление одного слова слева от курсора;

  • CTRL+DEL - Удаление одного слова справа от курсора.

Начертание текста

  • CTRL+B - Добавление полужирного начертания;

  • CTRL+I - Добавление курсивного начертания;

  • CTRL+U - Добавление подчеркивания;

  • CTRL+[ - Уменьшение размера шрифта на 1 пункт;

  • CTRL+] - Увеличение размера шрифта на один пункт;

  • CTRL+SHIFT+> - Увеличение размера шрифта;

  • CTRL+SHIFT+< - Уменьшение размера шрифта.

Прописные буквы

  • SHIFT+F3 - Изменение регистра букв.

Прочее полезное

  • F4 – повтор последнего действия;

  • Alt + двойной клик в любом поле таблицы – выделить таблицу.

Заключение

Какими бы банальными не казались описанные выше операции, это - 90% косяков и ошибок в документах, связанных с оформлением, которые действительно трудно контролировать с ростом объема без четких правил командной работы. Все понимают причины таких ошибок, но не всегда знают, как с ними бороться.

Кто-то просто способен договориться внутри команды о подобных вещах и поделиться опытом, у кого-то подобные правила входят в СМК (Система менеджмента качества), у кого-то описано на уровне СТП (Стандарт предприятия).

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

Теги:
Хабы:
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 19K
Комментарии 19
Комментарии Комментарии 19

Публикации

Истории