Пакет макросов для форматирования документов microsoft word
В данной статье собраны основные операции и алгоритмы работы, позволяющие повысить эффективность разработки документации в редакторе 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).
Это, пожалуй, самый простой способ, которым можно быстро привести в порядок документ, изначально разработанный не Вами, насыщенный рисунками, состав которых необходимо изменить.
Ссылка на номер рисунка (таблицы, раздела, пункта)
Классическая проблема: документ имеет много отсылок на внутренние объекты документа (рисунки, таблицы, разделы, пункты). При изменении номера объекта надо изменить и все отсылки на него, а если они находятся не рядом с объектом, то про них можно просто забыть или пропустить.
Классическое решение: сначала человек проставляет вместо номеров рисунков (объектов) «ХХ» желтым цветом, то же самое делает и для ссылок на указанные рисунки, затем проставляет номера рисунков по окончанию редактирования документа и начинает сопоставлять ссылки с рисунками, к которым они относятся.
Для вставки ссылки на рисунок (таблицу) необходимо перевести курсор мыши в то место, где необходимо вставить ссылку (1), нажать пункт меню «Ссылки» (2), «Перекрестная ссылка» (3), выбрать из выпадающего списка тип ссылки «Рисунок» («Таблица» и т.д.) (4), из выпадающего списка выбрать то, на что вставить ссылку «Постоянная часть и номер» (5), выбрать нужный рисунок (таблицу и др.) (6), нажать кнопку «Вставить» (7). На месте (1) появится ссылка на выбранный рисунок (таблицу и др.).
Если стандартный формат вставки ссылки не подходит (например, необходимо выполнять требования ГОСТ), то можно выполнить другие действия, описанные ниже.
Изменение формата перекрестной ссылки на рисунок (таблицу, раздел, пункт)
По умолчанию Word вставляет фразу «Рисунок N», однако иногда необходимо вставить фразу вида «Рис. N» (или «см. рис. N»). Для этого из перекрестной ссылки необходимо забрать лишь номер, а остальное дописать руками.
Если у Вас сложилось впечатление, что это слишком долго, то читаем ниже, как можно немного ускориться.
Ускоренная вставка ссылки на номер рисунка (таблицы)
Ускорить процесс вставки ссылок можно достаточно просто, следуя советам дедушки Сазерленда (методология Scrum), а именно: нужно выполнять одну простейшую операцию. Применительно к нашей задаче следует выделить весь текст нажатием «Ctrl+A», отобразить коды автозаполняемых полей нажатием «SHIFT+F9», открыть окно «Перекрестные ссылки» по примеру выше, после чего необходимо пролистывать документ, перенося курсор в нужные места, выбирать нужные ссылки из открытого окна перекрестных ссылок и вставлять их. Окно «Перекрестные ссылки» закрываем только тогда, когда документ отработан до конца.
Автозаполняемые поля (Экспресс-блоки) (число страниц, дата)
Классическая ошибка: этап проекта перешел на новый год, вы внесли в документ необходимые правки, закрыли документ, но забыли обновить год или число страниц на титульном листе и отправили заказчику.
Классическое решение: вы не забываете обновить год и число страниц и по завершении редактирования документа листаете его до конца, чтобы Word корректно пересчитал число страниц с учетом форматирования, возвращаетесь на титульный лист и вставляете полученное число.
Все это может выполняться автоматически стандартными средствами Word. В качестве примера вставим автоматическое поле числа страниц документа. Для этого устанавливаем курсор мыши туда, где необходимо вставить автозаполняемое поле (1), выбираем пункт меню «Вставить», затем «Экспресс-блоки» (2), затем «Поле» (3). Откроется окно «Поле» (4), в колонке «Поля» выбираем тип поля, в нашем примере «NumPages» (5), и нажимаем кнопку «Ок» (6). При этом в месте, где был установлен курсор (1), вставится поле, которое при обновлении (F9) поменяет значение на фактическое число страниц.
Для вставки даты вместо «NumPages» (5) необходимо найти «Date» и выбрать необходимый формат.
Исправление съезжающей нумерации в списке при выборе "Начать заново с 1"
Классическая проблема: надо начать новый нумерованный список, но по умолчанию продолжается старая нумерация. Обычно делают так: нажимают «ПКМ», «Начать заново с 1» и первый номер съезжает к значению по умолчанию.
Классическое решение: каждый раз передвигать отступы первого пункта списка на необходимое место.
Этого можно не делать если заранее определить отступы для нумерованного списка. Для этого необходимо нажать на первый номер нумерованного списка «ПКМ», затем «Изменить отступы в списке». Проделать это можно сразу для нескольких уровней списков, а еще лучше, если для каждого уровня списка создать отдельный стиль, что позволит быстро изменять отступы по всему документу, но об этом уже ниже.
Карта стилей
Классическая проблема: два человека разрабатывают части документа, в которых используется нумерация разделов и пунктов, выделение заголовков и особое форматирование абзацев. Один человек поддерживал нумерацию механически, второй - используя автонумерацию. При объединении нумерация съезжает, равно как и форматирование.
Классическое решение: выбирается жертва, которая приводит полученный бардак к единому виду.
Это, пожалуй, самая распространенная проблема, которая влечет за собой много нудной, монотонной и неинтересной работы по форматированию документа. Возникает она по причине того, что мало кто знает и пользуется одной из базовых возможностей Word - стилями. Правильно подготовленная карта стилей позволяет экономить уйму времени. Вы знали, что при изменении параметров существующего стиля они применяются ко всему тексту документа, который отформатирован в этом стиле?
Так вот, чтобы форматирование не занимало слишком много времени, хорошей практикой считается перед началом проекта уяснить требования к оформлению документов (например, определенных в ГОСТ или шаблонах заказчика) и собрать карту стилей хотя бы для следующих элементов:
На этой странице вы можете загрузить на свой компьютер и установить различные шаблоны или полезные программы для редактора Word.
Галерея для упрощённой вставки изображений из папки
Подробная информация изложена в заметке Александра Витера Вставка изображений из указанной папки для Word 2007 .
"Методичка" - пакет макросов для форматирования документов Word
Пакет "Методичка" служит для преобразования неформатированного текста в документ MS Word, который удобно редактировать и использовать.
Пакет можно использовать для форматирования сканированных книг и документов, оформления курсовых и дипломов, правки "кривого" текста полученного из Интернета, вырезанного из книги в формате pdf и т. д.
Пакет распространяется за вознаграждение (цена - любая приемлемая для пользователя сумма). За информацией обращаться на страницу автора пакета .
Макрос пакетной замены от Александра Витера
Шаблон "Массовое форматирование документов"
Шаблон «Массовое форматирование документов» позволяет произвести форматирование текста во многих документах одновременно (без открытия этих документов). Предназначен для редактора Word 2003.
Шаблон "СЦЕНАРИЙ" (для автоматизации написания киносценариев)
Шаблон «Сценарий» предназначен для автоматизации написания киносценариев на основе предустановленного формата и заданных стилей. Работает только в редакторе Microsoft Word 2007.
Шаблон "Быстрое выделение"
Шаблон "QuickSelect" предназначен для быстрого доступа к командам выделения объектов (слов, предложений, строк, параграфов, экрана , разделов, страниц, всего документа).
Читайте подробности в заметке Шаблон “Быстрое выделение” .
Шаблон инструкции по оформлению текстовой документации
Для связи с автором Инструкции сообщаю его реквизиты:
Куличев Андрей Радиевич
Шаблон для работы с закладками
Шаблон "BMTools" предназначен для быстрого доступа к закладкам текущего документа и содержит инструменты работы с закладками.
Подробности читайте в заметке Шаблон для работы с закладками и в файле Инструкция.doc в архиве.
Вы можете скачать и установить один из двух вариантов шаблона.
Первый вариант (список закладок отображается в меню после команд):
Второй вариант (список закладок отображается в самом верху меню):
Шаблон инструментов работы с последними файлами
Шаблон "RFTools" предназначен для отображения списка недавно открываемых файлов, вывода диалогового окна "Последние файлы", очистки списка последних файлов (очищается список, файлы не удаляются).
"Исследование выполняют во
время стандартной катетеризации
полостей сердца и сосудов. Датчик
посылает ультразвуковой сигнал
определенной частоты через про-
свет сосуда, который, достигая его
стенки, отражается от нее и вос-
принимается на обратном пути хода
луча тем же датчиком. Полученную
с «отраженным» лучом информа- "
Был разработан макрос, позволяющий автоматизировать форматирование подобного текста:
Он выполняет следующие действия:
1) Удаление пробелов в конце строк, где они есть (замена " ^p" на "^p" несколько раз)
2) Удаление знаков переноса (замена "-^p" на "" и "–^p" на "")
3) Добавление пустых строк после различных знаков препинания:
а) Добавление пустой строки после точки (замена ".^p" на ".^p^p")
б) Добавление пустой строки после двоеточия (замена ":^p" на ":^p^p")
в) Добавление пустой строки после точки с запятой (замена ";^p" на ";^p^p")
г) Добавление пустой строки после восклицательного знака (замена "!^p" на "!^p^p")
д) Добавление пустой строки после вопросительного знака (замена "?^p" на "?^p^p")
е) Добавление пустой строки после троеточия (замена "…^p" на "…^p^p")
4) Выделение сочетания "^p^p" жирным шрифтом (замена "^p^p" нежирным шрифтом на "^p^p" жирным шрифтом)
5) Замена "^p" на " " для нежирного шрифта (замена "^p" нежирным шрифтом на " " нежирным шрифтом)
6) Убрать знаки переноса жирным шрифтом (замена "^p" жирным шрифтом на "^p" нежирным шрифтом)
Недостатки данного макроса:
1) Он объединяет с последующим текстом строки, которые не кончаются на знаки препинания (заголовки, знак препинания пропущен, названия рисунков, номер страницы книги).
2) Не работает с таблицами.
3) «Ошибается», если знак переноса выделен жирным шрифтом.
4) Если знак переноса «случайно» находится после знака «тире» в словах, в которых должно стоять тире (например, «административно-территориальный», «социально-экономический»), то конец строки и начало следующей строки объединяются без тире («административнотерриториальный», «социальноэкономический»).
5) Если знак переноса «случайно» находится после знака «точка с запятой», то считается, что это конец строки (это не всегда так).
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.
Привет, Хабр! Недавно в нашем корпоративном блоге мы рассказали о выходе новой версии МойОфис 2021.02, в которой появились удобные инструменты для работы с формулами и математическими выражениями, а также со сводными таблицами.
Помимо этого, в состав релиза 2021.02 вошел программный отладчик макрокоманд. Он проверяет исполнение кода и помогает обнаружить ошибки синтаксиса. Сегодня мы продемонстрируем возможности работы с макросами в документах на примере текстового редактора «МойОфис Текст», а заодно коснемся темы создания надстроек, которые позволят расширить функциональные возможности редактора.
Для начала разберёмся, что такое макросы и надстройки, в каких продуктах они представлены, для чего используются и в чём их отличия.
При работе с текстом, таблицами или иными данными пользователь выполняет различные операции с помощью выбора пункта меню или нажатия на специальную кнопку. Однако по большей части при этом выполняется только одно действие и только над выбранным диапазоном значений. Но что делать, если нужно не просто выполнить некую последовательность действий, но ещё и повторить её несколько раз, используя при этом разные наборы данных? Или даже расширить функции обработки, добавить что-то своё, чего еще не было реализовано в редакторе? Для этого и существуют макросы и надстройки.
Макрос — это программный алгоритм, небольшой кусок кода, который позволяет пользователю автоматизировать ту или иную последовательность действий в конкретном открытом документе — например, это может быть автоматическое редактирование документа с заменой символа минус на тире, переводом кавычек в «елочки» и расстановкой символов конца абзаца до нужного значения.
Надстройка — программный модуль, который подключается в редактор и может работать не только с данными внутри конкретного документа, но и с другими документами, а также выполнять иные действия, включая операции с файлами.
МойОфис выпускает несколько продуктов для работы с документами и коммуникациями, — как для коммерческих, так и для частных пользователей. И тем и другим доступны макрокоманды, с которыми можно работать прямо в документах. Напомним, что продукт «МойОфис Стандартный. Домашняя версия» доступен для некоммерческого использования, бесплатен и не содержит рекламы. Его можно скачать с нашего сайта, а также в магазинах приложений Windows Store и Mac App Store. А вот работать с надстройками смогут только коммерческие пользователи, которые приобрели «МойОфис Стандартный».
Для написания макросов и надстроек в МойОфис используется свободный скриптовый язык программирования Lua. Этот кросс-платформенный язык легок в освоении и обладает достаточно широкими возможностями. В настоящий момент в МойОфис реализована поддержка Lua версии 5.3.2.
Отметим, что во всемирно известном офисном ПО Microsoft Office для создания макрокоманд применяется другая технология — VBA (Visual Basic for Applications), специальная версия языка Visual Basic для автоматизации действий внутри документов прикладного ПО. Но мы, как производитель программных продуктов, в силу существующих лицензионных ограничений не можем использовать проприетарные технологии Microsoft. Если вы представляете организацию, которая находится в процессе миграции на российские решения, то тоже не сможете пользоваться таким инструментом.
Кроме того, конверторов из VBA в Lua не существует в принципе. Поэтому, если вам требуется работать с документами, которые содержат макросы и были ранее созданы в Microsoft Office, то вам придется переводить код макрокоманд на язык Lua. Мы понимаем, что это может быть проблемой для тех, кто переходит на отечественное ПО, и специально для наших покупателей предлагаем такие решения:
Центр компетенций «Хаб Знаний МойОфис» разработал методологию обучения основам Lua, которая позволяет быстро научиться созданию макросов в редакторах МойОфис. Первая публичная лекция по этой методологии состоится 14 октября 2021 года.
МойОфис также предлагает полный комплекс консалтинговых услуг для покупателей наших продуктов — пользователи не останутся один на один со своими проблемами, обращайтесь в службу технической поддержки, мы поможем с решением вашей ситуации.
Для создания макросов на Lua вам точно понадобятся следующие материалы:
«Руководство программиста» — детальное описание методов и функций, которые реализованы в библиотеке MyOffice Document API и используются для работы с макросами и надстройками в редакторах.
Как писать макросы в МойОфис
Сейчас мы покажем, как происходит работа с макросами и надстройками. Для начала запускаем редактор макросов, который находится в меню «Инструменты» — «Редактирование макроса».
Далее создаём новый скрипт: нажимаем на «плюс», после чего появляется название нового скрипта и возможность ввода кода. Для удобства работы можно задать произвольное название.
Рассмотрим простой пример
Для начала сделаем скрипт, который будет выводить в документ текстовую строку с фразой «Привет, Мир!». Для этого нам потребуется совершить несколько базовых действий. Сначала с помощью метода Document:getRange предоставим доступ ко всему документу как области данных:
Далее нужно определить позицию: в какую часть документа мы будем вставлять текст. В нашем случае — это конец документа. Определим значение переменной pos, которая будет отражать позицию в документе, и сделаем это с помощью метода Range:getEnd. Учтите, что этот метод возвращает позицию в конце фрагмента текстового документа, не включая последний символ paragraph mark. Если требуется определить позицию в начале документа, то пользуйтесь методом Range:getBegin.
Теперь воспользуемся методом Position:insertText и вставим строку с нужным нам текстом в определенную выше позицию в документе.
Наш первый макрос будет выглядеть следующим образом:
Как с помощью макросов в МойОфис посчитать число символов в документе
Попробуем сделать пример посложнее. Представим типовую задачу — нужно посчитать количество символов и слов в документе. Оставим от предыдущего примера переменные range и pos, они нам еще пригодятся.
Теперь с помощью метода text = range:extractText() преобразуем тело документа в одну текстовую строку. При работе с этим методом находящиеся внутри области изображения, таблицы и прочие подобные элементы документа игнорируются.
Перейдем к подсчету символов. Сделать это очень просто — нам нужно лишь определить длину строки, и для этого можно было бы воспользоваться простой функцией len(). Однако, в случае с кириллическими символами в строке, Lua будет считать длину строки неправильно, т.к. на каждый такой символ будет приходиться два бита, а не один, как в случае с латиницей или цифрами. К счастью, в Lua 5.3 появилась поддержка кодировки UTF-8, которой мы и воспользуемся. Введем переменную Allsymbols, которую определим с помощью функции utf8.len():
Неотъемлемой частью любого документа являются символы конца абзаца. Их может быть произвольное количество, и для правильного подсчета числа символов их надо удалить из результата, который мы получили выше с помощью utf8.len(). Но сначала нужно посчитать, сколько символов конца абзаца попало в строку при выгрузке с помощью метода extractText(). Для этого нам понадобится несколько строк кода. В них мы сперва определим значение переменной newLine равным нулю, а затем, с помощью простого цикла подсчитаем в выгруженном объеме текста общее количество всех символов конца абзаца. Используем для этого стандартную функцию string.gmatch, в аргументах которой указываем где искать (text) и что искать ("\n").
Теперь осталось лишь вычесть из общего числа символов AllSymbols число символов конца абзаца newLine. Введем новую переменную Symb:
Перейдем к подсчёту слов. С этим дело обстоит несколько сложнее — для определения числа слов нам потребуется воспользоваться функцией gsub (глобальная замена) и регулярным выражением.
Механика подсчета следующая: с помощью функции gsub мы определяем в строке слова, которые разделены пробелами. В этом нам помогает регулярное выражение %S+, с помощью которого определяются все элементы строки, не являющиеся пробелами. Так мы получаем все элементы, которые в строке отделены пробелами. И от функции gsub нам нужен не результат преобразования строки, а лишь число найденных элементов. Для этого мы определяем переменную Word как второй результат функции gsub и указываем это с помощью символа подчеркивания.
Следующая часть кода — создание таблицы, куда поместим найденные значения.
Для этого построим такую конструкцию: простую таблицу из двух строк и двух колонок (определяется переменной t_id), которая будет сопровождаться заголовком «Выводы»:
Теперь осталось сформировать таблицу и вывести в нее результат.
Для этого определим переменную tbl, которая с помощью методов document:getBlocks() и getTable() формирует таблицу в документе с заданными в переменной t_id значениями: 2 строки, 2 столбца, название «Some Table».
Далее нам остается только заполнить таблицу.
Для этого используем метод getCell для получения доступа к конкретной ячейке таблицы. Саму ячейку выбираем с помощью функции DocumentAPI.CellPosition, в аргументах которой начиная с нуля указываем номер строки и столбца. Затем, с помощью метода setText присваиваем ячейке текстовое значение типа «Текстовый», и выводим в нее нужную нам фразу. В случае с результатом вычислений, нам потребуется еще и преобразовать число в текст с помощью функции tostring.
В итоге получаем такой код макроса:
Вставляем код в соответствующее поле. При этом части кода маркируются разными цветами для лучшей читаемости. Назовем наш макрос «Символы».
Можно сразу запустить программу с помощью кнопки выполнить, либо использовать режим отладки (кнопка отладить). При необходимости вы можете установить контрольные точки на важных строках кода, чтобы отладчик на них останавливался. Для этого кликните по пустому серому полю между номером строки и её представлением в поле ввода кода макроса.
Если в коде есть какие-то проблемы (в нашем случае была осознанно удалена буква m в слове document на 13 строке), то при отладке, в левом нижнем поле красным будет обозначена ошибка, а строка с ней помечена зелёной стрелкой.
Если мы устраним проблему и вернем букву m в слово docuent, а затем нажмем кнопку "Выполнить", то отладчик сообщит об успешном выполнении кода макроса:
Результат работы макроса — небольшая сгенерированная табличка, расположенная ниже исходного текста.
Как запускать макросы из боковой панели редакторов МойОфис
Ещё один способ запуска скрипта в документе — это открытие панели запуска макросов. В поле под строкой «Поиск» будут перечислены все макросы данного документа.
Если навести курсор на строчку с желаемым макросом, появляются две дополнительных кнопки-символа — запуск и редактирование кода. Также запускать макрос можно двойным щелчком по названию.
Вы можете добавлять новые скрипты и изменять их при необходимости. Разумеется, использовать макросы можно не только в текстовым редакторе, но и в табличном — благодаря широким возможностям языка Lua.
Как писать надстройки в МойОфис
В отличие от макросов, надстройка представляет собой отдельный архивный Zip-файл с расширением .mox. Внутри архива могут содержаться различные файлы и каталоги, включая обязательные: файл регистрации надстройки, файл сценария надстройки и файл, содержащий текст лицензионного соглашения с конечным пользователем EULA.
Файл регистрации надстройки является тестовым документом и должен называться Package.lua. Внутри него содержатся ключи и их значения. Некоторые ключи являются обязательными, другие — нет. Подробный перечень ключей, их описания и другие полезные материалы для разработки собственных модулей вы можете найти в «Руководстве программиста» на сайте МойОфис.
Файл сценария надстройки называется так, как указано в значении ключа commandsProvider файла регистрации, и включает в себя все команды управления надстройкой и описание функций. Команды будут отображаться в виде подпунктов в меню надстроек.
Осталось только создать файл лицензии LICENSE и поместить его в папку META-INF.
Теперь упаковываем всё это в Zip-архив и меняем расширение на .mox. Всё готово! Можем устанавливать.
Установка и запуск надстроек МойОфис
Процесс установки прост и понятен. Выбираем в меню «Надстройки» — «Управление надстройками». В появившемся окне нажимаем на единственную кнопку «Установить» и указываем нужный файл расширения.
Читаем и принимаем лицензионное соглашение. В случае отказа установка будет прервана.
Готово! Надстройка установлена и появилась в списке.
Тут же можно посмотреть информацию о ней, отключить ее или полностью удалить из приложения.
Запускается надстройка и выбираются команды также через раздел «Надстройки». После установки в нём появится название надстройки и список команд в выпадающем меню.
Нажимаем на единственную команду и видим результат — вставленную строчку.
В статье мы показали разницу между макросами и надстройками и продемонстрировали на примерах лишь малую часть их возможностей. Вы легко можете разработать свою надстройку, скомпилировать внешние модули для использования в её составе и расширить функциональные возможности программ МойОфис под свои запросы.
Напомним, что на нашем сайте и в магазинах операционных систем можно бесплатно загрузить и опробовать редакторы МойОфис. Специально для наших пользователей мы также подготовили «Руководство программиста», которое содержит подробное описание функций, команд и прочую необходимую документацию для работы с макросами и надстройками.
Нам интересны ваши впечатления от реализации функциональности макрокоманд в редакторах МойОфис. Пожалуйста, расскажите в комментариях, удобно ли пользоваться таким решением, корректно ли работает отладчик макрокоманд на ваших скриптах, и каких дополнительных возможностей вам не хватает в наших редакторах. Как вы думаете, какие макросы, в том числе созданные вами, могут быть полезны для продуктов МойОфис?
Будем рады любым конструктивным откликам; возможно, именно ваши идеи окажут существенное влияние на развитие технологий автоматизации в наших продуктах. Мы внимательно изучим обратную связь и подарим памятные подарки авторам лучших на наш взгляд предложений.
Приходилось ли вам выполнять при форматировании документа несколько раз повторять одни и те же команды? Предположим, в документе 50 таблиц. И каждую надо привести в порядок. Повторяющиеся заголовки, выравнивание назначить, да мало ли чего ещё сделать. И вот раз за разом повторяются одни те же команды. Так что знакомимся с понятием МАКРОС В ТАБЛИЦЕ.
В офисных программах есть замечательная возможность: объединить несколько команд в одну макрокоманду. Макрокоманда – это последовательность команд, которые будут работать автоматически при запуске макроса.
Я приложила к уроку документ с несколькими таблицами (скачать файл тут). Я удалила текст документа (всё-таки авторское право и всё такое…):
По окончании урока вы сможете:
- Составить алгоритм форматирования таблицы
- Настроить ленту «Разработчик»
- Записать макрос форматирования таблицы
- Проверить макрос в действии
- Добавить кнопку «Макрос» на панель быстрого доступа
1. Алгоритм форматирования таблицы
Прежде, чем приступить к созданию макроса, следует тщательно продумать, какие команды нам понадобятся. Начнём с верха таблицы
- Заголовок, повторяющийся при переходе таблицы на следующую страницу
- Выравнивание содержимого ячеек заголовков по центру и по середине
- Заливка строки заголовка цветом
- Текст заголовка таблицы полужирного начертания красного цвета
- Поля ячеек – 0,05
- Видимые границы для всей таблицы красного цвета
- Автоподбор по ширине окна (вдруг таблица меньше ширины печатного поля)
Почему такая последовательность? При написании макрокоманды есть одна особенность:
Понять и запомнить! | Ни в коем случае нельзя щелкать ЛМ по области документа! Работать только с лентами! |
Так вот, после выделения заголовка можно выделить всю таблицу командой с ленты, а наоборот – нельзя!
Итак, нам надо записать семь команд одной макрокомандой. По ходу дела команд может оказаться больше.
Для того, чтобы записать макрос, необходимо найти эту команду. Команда «Запись макроса» находится на ленте «Разработчик», которая в настоящий момент не видна.
2. Настройка ленты «Разработчик»
Шаг 1. Выходим в режим настраивания ленте (ПМ в любом месте любой ленты → команда Настроить ленту из контекстного меню):
Шаг 1. Отметим галочкой ленту «Разработчик»[1]
Вообще-то команда «Запись макроса» есть на ленте «Вид»:
Но на ленте «Разработчик» есть много других команд, которыми я активно пользуюсь, например, создание форм и полей, поэтому эта лента присутствует у меня в обязательном порядке.
3. Макрос для таблицы. Запись макроса для форматирования таблицы
Шаг 1. Выделяем заголовок таблицы (щелкаем ЛМ на полосе выделения напротив заголовка таблицы):
Шаг 2. Запускаем запись макроса (лента Разработчик → группа команд Код → команда Запись макроса):
- Можно ввести имя макроса, но имейте в виду, что пробелы недопустимы, то есть имя макроса будет выглядеть так – «Форматирование таблицы».
- Назначить выполнение макроса от нажатия единственной кнопке. Но кнопка должна быть уникальная (никогда не пользуюсь).
- Ввести описание макроса. Здесь никаких ограничений. Конечно, если макрос единственный, то можно и обойтись без описания. Я часто использую макросы, поэтому без описания просто не обойтись.
- Назначить выполнение макроса от нажатия сочетания функциональной клавиши плюс любой клавиши. Но при этом недопустимо использовать устойчивые системные сочетания, например, Ctrl+X, так как это сочетание зарезервировано для команды «Вырезать в буфер обмена».
- Из этого выпадающего меню выбираем доступность макроса для определенного документа. Если выбираем Normal.dotm, то наш макрос будет доступен для всех документов, созданных на основе шаблона Normal.dotm. Если мы создали документ на основе другого пользовательского шаблона, то в списке появится имя этого пользовательского шаблона, и тогда все документы на основе этого шаблона будут иметь внедрённый макрос. Но это действительно только для шаблонов, которые имеются на нашем компьютере.
Шаг 3. Назначаем сочетание клавиш (например, Ctrl+1):
Нажимаем клавиши «Назначить» и «Закрыть» и знакомимся с новым видом курсора:
Шаг 4. Назначаем режим «Повторить строки заголовков» (лента Макет → группа команд Данные → команда Повторить строки заголовков):
Шаг 5. Назначаем выравнивание содержимого ячеек строки заголовков по центру (лента Макет → группа команд Выравнивание → команда Выровнять по центру):
Шаг 6. Назначаем заливку строки заголовка (лента Конструктор → группа команд Стили таблиц → команда Заливка → выбор цвета заливки из палитры):
Шаг 7. Устанавливаем полужирное начертание шрифта заголовка и назначаем ему красный цвет (лента Главная → группа команд Шрифт → кнопка «Ж» и кнопка Цвет текста → выбор цвета из палитры):
Шаг 8. Выделяем всю таблицу лента Макет → группа команд Таблица → команда Выделить → команда Выделить таблицу из выпадающего меню):
Шаг 9. Назначаем границы таблицы (лента Конструктор → группа команд Обрамление → команда Цвет пера → выбор цвета границы из палитры → команда Граница → команда Все границы из выпадающего меню):
Шаг 10. Назначаем поля ячеек (лента Макет → группа команд Выравнивание → команда Поля ячейки → диалоговое окно Параметры таблицы[2] → Поля ячеек пользовательские):
Шаг 11. Устанавливаем Автоподбор таблицы по ширине окна (лента Макет → группа команд Размер ячейки → команда Автоподбор по ширине окна[3] из выпадающего меню):
Шаг 12. Останавливаем запись макроса (лента Разработчик → группа команд Код → команда Остановить запись):
Команда «Остановить запись» дублируется скромным квадратиком на строке состояния:
Всё! Макрос для таблицы готов!
4. Проверка макроса в действии
Шаг 1. Выделяем заголовок любой таблицы:
Шаг 2. Нажимаем сочетание клавиш Ctrl+1 и любуемся результатом:
А теперь посмотрим, как будет работать макрос на таблице со сложным заголовком. В учебном файле это Таблица 4.
Шаг 1. Выделяем сложный заголовок, то есть заголовок, состоящий из двух строчек и объединённых ячеек:
Шаг 2. Нажимаем сочетание клавиш Ctrl+1 и любуемся результатом:
5. Кнопка запуска макроса «Форматирование_таблицы» на Панели быстрого доступа
Шаг 1. Вызываем диалоговое окно «Параметры Word» (Панель быстрого доступа → команда Другие команды из выпадающего меню):
Как настраивать Панель быстрого доступа я рассказывала в Уроке 18 и Уроке 19.
Шаг 2. Выбираем список «Макрос» (кнопка выпадающего меню → список Макрос):
Шаг 3. Добавляем макрос для таблицы на Панель быстрого доступа (пока макрос один, но у нас всё впереди):
ОК! А вот результат:
Макрос для таблицы будет запускаться при нажатии кнопки на Панели быстрого доступа.
Теперь вы сможете:
- Составить алгоритм форматирования таблицы
- Настроить ленту «Разработчик»
- Записать макрос форматирования таблицы
- Проверить макрос в действии
- Добавить кнопку «Макрос» на панель быстрого доступа
[1] В контекстном меню – «Настройка ленты», а в окне «Параметры Word» – «Вкладка»
[2] Интересно, почему команда Поля ячейка, а диалоговое окно называется Параметры таблицы? Загадка природы, небрежность переводчиков или шутка разработчиков?
[3] Вообще-то команда имеет смысл «Автоподбор по ширине печатного поля», но не будем придираться.
Читайте также: