О быстром оформлении таблиц в Word

Вопросы экологии, не попавшие в другие разделы.

Модераторы: Ecolog-Julia, seergy, Лёха, masm0, Kotucheny, Raccoon, sveta-eko

Ответить
Аватара пользователя

Автор темы
masm0

Шаман физических воздействий Звезда за развитие Орден за помощь Звезда за помощь Медаль за помощь
Медаль за порядок
Модератор
Сообщения: 2334
Зарегистрирован: 10 сен 2008, 09:41
Награды: 12
Откуда: Ленинград
Благодарил (а): 598 раз
Поблагодарили: 1327 раз
Контактная информация:

О быстром оформлении таблиц в Word

Сообщение masm0 »

В и-нете много шуточек о перфекционистах. Возможно, я из их числа: я не могу смотреть без боли в глазах на отчеты программ для расчета выбросов — cразу хочется отредактировать это безобразие! К тому же у уважающих себя контор имеются внутренние стандарты, регламентирующие правила оформления своей продукции. Если исправить шрифт и его кегль можно с помощью нажатий нескольких клавиш, то при оформлении таблиц придется потрудиться.

В данной заметке я расскажу о своем относительно быстром способе оформления таблиц в 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
Между «Sub Макрос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
6. Сохраняем (Ctrl+S). Теперь редактор Visual Basic можно закрыть и перейти в Word.

Как пользоваться макросом

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

Результаты использования макроса

Было

Допустим, мы вставили отчет программы в свой условный шаблон документа: мы сразу заметим, что некоторые таблицы выходят за рамки полей, регламентируемых нашим условным стандартом, а некоторые таблицы неоправданно сжаты и занимают дополнительное место в документе.
БЫЛО.png
Стало

Теперь применяем макрос и видим, что широкие таблицы сжались, а узкие стали шире, при этом занимая меньше места на бумаге (в данном примере экономия бумаги составила около 17%).
СТАЛО.png
Также макрос оформляет рамки таблиц. Дело в том, что разные программы имеют разные стили оформления рамок таблиц. Теперь, если вам необходимо собрать отчеты из разных программ в одном документе, то все таблицы будут выглядеть одинаково.

Альтернативный способ (долгий)


Те же действия можно осуществить без применения макросов:

1. Щелкаем по таблице. Выделяем всю таблицу с помощью появившегося значка сверху справа от таблицы.
2. Щелкаем правой кнопкой мыши на таблице и в контекстном меню выбираем «Автоподбор». В подменю выбираем «Автоподбор по содержимому».
3. Для оформлении рамок таблицы на панели «Главная» щелкаем на кнопке настройки границ и выбираем «Все границы».
4. Вновь щелкаем правой кнопкой мыши на таблице. В контекстном меню выбираем «Автоподбор», а в подменю выбираем «Автоподбор по ширине окна».

Таким образом придется сделать 9—11 действий для одной таблицы (против 2—3 действий для нескольких таблиц при использовании макроса). При этом нужно включать мозг, чтобы не перепутать и не забыть все эти действия в их сложной последовательности. Для одноразового оформления данный способ вполне применим, но очевидно, что для оформления таблиц в промышленных масштабах лучше один раз потратить время на установку макроса.

Оформление сразу всех таблиц в документе

Выделяем весь текст в документе (Ctrl+A) и запускаем наш макрос.

Примечание 1: Также можно поменять первую строчку макроса «With Selection» на «With Application.ActiveDocument», но я считаю, что это не оптимально.

Примечание 2: Если у вас большой отчет, то его автоматическое оформление может занять продолжительное время. Например, на моём старом домашнем компьютере оформление отчета из 267 страниц, содержащего 1047 таблиц, заняло 3 минуты 25 секунд (согласитесь, что это лучше, чем несколько дней оформлять вручную). А пока компьютер работает, эти 3—4 минуты лучше потратить на чай, кофе или даже сигаретку ;-)

Смотри мою следующую заметку об оформлении колонтитулов в Excel и ставь лайки ;-)
Изображение
Перенесено из форума Общение в форум Общее 29 авг 2017, 09:12 модератором Вадим Зыков


VadimV

Звезда за помощь Медаль за помощь
Заслуженный эколог
Сообщения: 2287
Зарегистрирован: 09 июн 2008, 04:20
Награды: 2
Благодарил (а): 312 раз
Поблагодарили: 319 раз

Re: О быстром оформлении таблиц в Word

Сообщение VadimV »

Может я что-то не так сделал, но у меня кроме того, что невидимые линии в таблицах стали видимыми - ничего не происходит).

А, не, произошло. Исчез биткоин из кошелька!
Аватара пользователя

Автор темы
masm0

Шаман физических воздействий Звезда за развитие Орден за помощь Звезда за помощь Медаль за помощь
Медаль за порядок
Модератор
Сообщения: 2334
Зарегистрирован: 10 сен 2008, 09:41
Награды: 12
Откуда: Ленинград
Благодарил (а): 598 раз
Поблагодарили: 1327 раз
Контактная информация:

Re: О быстром оформлении таблиц в Word

Сообщение masm0 »

VadimV, специально для тебя потратил время и дописал раздел "Результаты использования макроса".

Я же еще в начале сказал, что моё решение не идеально. Для всех всевозможных задач оно неприменимо, но для конкретной задачи, упомянутой в посте, — вполне себе норм:)
Изображение

VadimV

Звезда за помощь Медаль за помощь
Заслуженный эколог
Сообщения: 2287
Зарегистрирован: 09 июн 2008, 04:20
Награды: 2
Благодарил (а): 312 раз
Поблагодарили: 319 раз

Re: О быстром оформлении таблиц в Word

Сообщение VadimV »

ТАк я не в претензии же).
Просто всегда ждешь чего-то грандиозного. Прорыва в технике).
Но, только сейчас пришло в голову, это ж можно мою просьбу о сортировке результатов по номеру точки просто макросом реализовать.
Аватара пользователя

MrChel
Эколог
Сообщения: 83
Зарегистрирован: 09 июн 2008, 18:04
Откуда: Саратов
Благодарил (а): 22 раза
Поблагодарили: 11 раз
Контактная информация:

Re: О быстром оформлении таблиц в Word

Сообщение MrChel »

Протестил, всё отлично работает, перфекционисты довольны :-)
Изображение

Аватара пользователя

Автор темы
masm0

Шаман физических воздействий Звезда за развитие Орден за помощь Звезда за помощь Медаль за помощь
Медаль за порядок
Модератор
Сообщения: 2334
Зарегистрирован: 10 сен 2008, 09:41
Награды: 12
Откуда: Ленинград
Благодарил (а): 598 раз
Поблагодарили: 1327 раз
Контактная информация:

Re: О быстром оформлении таблиц в Word

Сообщение masm0 »

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

Чтобы обновить макрос, замените предыдущий код новым.
Изображение

Ответить

Вернуться в «Общее»

Форум для экологов : Отказ от ответственности