В данной заметке я расскажу о своем относительно быстром способе оформления таблиц в Word. Сразу отмечу, что способ наверняка не самый совершенный. Коллеги, понимающие в программировании, возможно, предложат варианты значительно лучше моего, но у меня нет времени на оптимизацию.
Важно! Ниже приведен пример быстрого оформления таблиц для отчетов программ фирмы Интеграл. Более универсальные способы (или, напротив, еще более узкоспециализированные) рассмотрим в других заметках.
Установка макроса
Итак, начнем с того, что добавим в шаблон Normal.dotm новый макрос.
Примечание: Как правило, макросы вызывают ужас у рядового гражданина. Но не нужно их бояться. Следуйте моим инструкциям, и все будет хорошо.
1. Закрываем все документы, открытые в Word, и оставляем одну единственную открытую копию приложения. Можно создать новый документ.
2. Отображаем на ленте вкладку Разработчик. Для этого воспользуемся инструкцией Microsoft.
3. Теперь самое неприятное для обычного юзера — включаем макросы. Самый простой способ — это на вкладке Разработчик нажать на кнопку Безопасность макросов и там выбрать Включить все макросы, а затем закрыть Word и открыть заново. Конечно, это довольно опасно, так как при открытии документов из неизвестных источников вы рискуете подцепить вирус. Чтобы себя обезопасить, не открывайте такие документы или отключайте макросы, когда вы с ними не работаете. Подробная инструкция о включении и выключении макросов приведена на сайте Microsoft.
4. Следующим шагом, переходим на вкладку Вид и записываем пустой макрос. Для этого снова воспользуемся инструкцией разработчика Office. Просто запускаем запись, предварительно назначив сочетание клавиш или кнопку на ленте, и сразу останавливаем (я запускаю макрос с помощью сочетания клавиш «Alt+Ctrl+Shift+Z» (мне так удобно), но также его можно запускать с помощью кнопки на ленте). По умолчанию Word предложит назвать макрос «Макрос1». Можно так и оставить — это не принципиально (я назвал "ОформлениеТаблицыВВыделенном").
5. Переходим на вкладку Разработчик. Запускаем редактор Visual Basic (первая кнопка слева).
Слева вверху отобразится окно Project – Normal. В дереве откройте Normal->Modules->NewMacros. Щелкните на этой позиции дважды. Отобразится окно Normal – NewMacros (Code). Если мы назвали макрос «Макрос1», то увидим следующий код:
Код: Выделить всё
Sub Макрос1()
'
' Макрос1 Макрос
'
'
End Sub
Код: Выделить всё
Dim i&
With Selection
For i = 1 To .Tables.Count
With .Tables(i)
' Оформление рамок таблиц
.Borders(wdBorderTop).LineStyle = Options.DefaultBorderLineStyle
.Borders(wdBorderTop).LineWidth = Options.DefaultBorderLineWidth
.Borders(wdBorderLeft).LineStyle = Options.DefaultBorderLineStyle
.Borders(wdBorderLeft).LineWidth = Options.DefaultBorderLineWidth
.Borders(wdBorderBottom).LineStyle = Options.DefaultBorderLineStyle
.Borders(wdBorderBottom).LineWidth = Options.DefaultBorderLineWidth
.Borders(wdBorderRight).LineStyle = Options.DefaultBorderLineStyle
.Borders(wdBorderRight).LineWidth = Options.DefaultBorderLineWidth
.Borders(wdBorderHorizontal).LineStyle = Options.DefaultBorderLineStyle
.Borders(wdBorderHorizontal).LineWidth = Options.DefaultBorderLineWidth
.Borders(wdBorderVertical).LineStyle = Options.DefaultBorderLineStyle
.Borders(wdBorderVertical).LineWidth = Options.DefaultBorderLineWidth
' Выравнивание таблиц
.AutoFitBehavior (wdAutoFitContent)
.AutoFitBehavior (wdAutoFitWindow)
End With
Next i
End With
Как пользоваться макросом
Пользоваться макросом очень просто. Щелкаем мышкой по таблице или выделяем часть текста с несколькими таблицами (можно выделять части таблиц), а затем запускаем макрос (клавишами или кнопкой). Выделенные таблицы изменят стиль рамок и выровняются.
Результаты использования макроса
Было
Допустим, мы вставили отчет программы в свой условный шаблон документа: мы сразу заметим, что некоторые таблицы выходят за рамки полей, регламентируемых нашим условным стандартом, а некоторые таблицы неоправданно сжаты и занимают дополнительное место в документе. Стало
Теперь применяем макрос и видим, что широкие таблицы сжались, а узкие стали шире, при этом занимая меньше места на бумаге (в данном примере экономия бумаги составила около 17%). Также макрос оформляет рамки таблиц. Дело в том, что разные программы имеют разные стили оформления рамок таблиц. Теперь, если вам необходимо собрать отчеты из разных программ в одном документе, то все таблицы будут выглядеть одинаково.
Альтернативный способ (долгий)
Те же действия можно осуществить без применения макросов:
1. Щелкаем по таблице. Выделяем всю таблицу с помощью появившегося значка сверху справа от таблицы.
2. Щелкаем правой кнопкой мыши на таблице и в контекстном меню выбираем «Автоподбор». В подменю выбираем «Автоподбор по содержимому».
3. Для оформлении рамок таблицы на панели «Главная» щелкаем на кнопке настройки границ и выбираем «Все границы».
4. Вновь щелкаем правой кнопкой мыши на таблице. В контекстном меню выбираем «Автоподбор», а в подменю выбираем «Автоподбор по ширине окна».
Таким образом придется сделать 9—11 действий для одной таблицы (против 2—3 действий для нескольких таблиц при использовании макроса). При этом нужно включать мозг, чтобы не перепутать и не забыть все эти действия в их сложной последовательности. Для одноразового оформления данный способ вполне применим, но очевидно, что для оформления таблиц в промышленных масштабах лучше один раз потратить время на установку макроса.
Оформление сразу всех таблиц в документе
Выделяем весь текст в документе (Ctrl+A) и запускаем наш макрос.
Примечание 1: Также можно поменять первую строчку макроса «With Selection» на «With Application.ActiveDocument», но я считаю, что это не оптимально.
Примечание 2: Если у вас большой отчет, то его автоматическое оформление может занять продолжительное время. Например, на моём старом домашнем компьютере оформление отчета из 267 страниц, содержащего 1047 таблиц, заняло 3 минуты 25 секунд (согласитесь, что это лучше, чем несколько дней оформлять вручную). А пока компьютер работает, эти 3—4 минуты лучше потратить на чай, кофе или даже сигаретку ;-)
Смотри мою следующую заметку об оформлении колонтитулов в Excel и ставь лайки ;-)