17 подписчиков

НОВЫЙ СПОСОБ КЛОНИРОВАТЬ ТЕКСТ

Сейчас будет сложно. Текст для фанатов эффективности и Word.

Сейчас будет сложно. Текст для фанатов эффективности и Word.

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

Выполните длинную цепочку действий: Файл — Параметры — Центр управления безопасностью — Параметры центра управления безопасностью — Параметры макросов и поставьте точку около варианта «Включить макросы».

Настройка параметров безопасности макросов
Настройка параметров безопасности макросов

Да, отчасти это небезопасно, если вы неряшливо себя ведёте по отношению к входящей информацией. Что ж, хотите эффективности, надо её заработать дополнительным знанием. Как себя вести, чтобы не заразить свой компьютер вирусами — читайте мою следующую статью. А мы выходим из уютного безопасного дома и идём вперёд за открытиями.

Есть такая задачка в работе с документами — повторять фрагмент текста несколько раз. Например, если работаешь с договором и его номер надо указать в приложении. Да так, чтобы один раз написать, а он бы повторился несколько раз. Есть несколько способов её решить. Я нашёл ещё один. Как мне кажется, очень элегантный.

Начнём издалека. Во всех программах Microsoft Office есть секретная вкладка, которую придётся включить перед началом выполнения. Тыкните правой кнопкой мыши по любой кнопке на ленте, и вы найдёте команду «Настройка ленты». Появится диалог, в котором (в правой части) надо найти пустой квадратик у слова «Разработчик» и поставить там галочку.

Включение вкладки "Разработчик"
Включение вкладки "Разработчик"

Когда вы нажмёте «OK», в ряду вкладок на ленте появится ещё одна. В этот момент на занятии я произношу стандартную шутку про то, что после включения вкладки «Разработчик» можно требовать повышения оклада, поскольку вы теперь не просто пользователь, а ещё и немного программист.

В этой «каморке технарей» (посередине) мы отыщем раздел «Элементы управления». Он пригодится нам и в следующий раз, когда мы будем готовить документ к защите от шаловливых пальчиков. Но сейчас мы применим эти кнопки для другого дела.

Вот договор, который я буду настраивать. Скачайте его и повторяйте мои действия.

Выделяем номер договора в самом начале документа. Затем идём в «Элементы управления» и нажимаем самую первую кнопку «форматированный текст». Тут же с выделенным фрагментом что-то происходит — теперь это не просто кусочек текста, это особый «Элемент управления». И у него есть свойства. Нажимаем кнопку с этим названием. В появившемся диалоге в графе «Название» пишем «Номер договора».

Теперь идём вниз документа в раздел «Соглашение о договорной цене» и там в тексте выполняем то же самое.

Вставка и настройка элементов управления
Вставка и настройка элементов управления

Хотелось бы, чтобы, указывая текст в одном из этих элементов, он бы сам менялся и во всех своих собратьях с одинаковым названием. Увы, Microsoft бросил эти элементы на произвол судьбы и нам остаётся «доработать напильником» эту опцию.

Придётся ненадолго стать программистами. Но не пугайтесь, программу я уже написал, теперь её надо грамотно внедрить в свой Word.

В той же вкладке «Разработчик» нажмите кнопку «Visual Basic». Откроется дополнительное окно. В нём (слева) найдите строчку «Normal» и под ней строчку «Microsoft Word Objects». Разверните её при помощи «плюсика» и затем дважды щёлкните по строчке «ThisDocument». Справа скорее всего будет совсем пусто. Вот туда и скопируйте вот этот код:

Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
Text0 = ContentControl.Range.Text
Title0 = ContentControl.Title
For Each CC In ActiveDocument.ContentControls
Text1 = CC.Range.Text
If CC.Title = Title0 Then
If Text0 <> Text1 Then
CC.Range.Text = Text0
End If
End If
Next
End Sub

Кто хочет понять смысл этих буковок — добро пожаловать ко мне на курс программирования. Правда он проводится на примерах Excel, но закончившим его не составит труда разобрать смысл этих команд, поскольку язык программирования один — VBA. На нём написаны все макросы что в Word, что в Excel, что в других программах MS Office.

Внедрение программного кода
Внедрение программного кода

Пора возвращаться в документ. Для этого окно режима программирования можно закрывать.

Теперь можно внутри любого из элементов управления писать текст — он автоматически будет размножаться на все элементы управления с таким же названием. Это будет происходить в момент выхода из элемента управления, когда вы тыкнете мышкой за его пределами по обычному тексту. И так в любом документе на этом компьютере.

В дальнейшем я рекомендую элементы управления размножать при помощи копирования. Для этого наведите мышку на элемент, всплывёт корешок с его названием. Такайте по нему и таким образом он весь выделится. Теперь копируйте CTRL+C и вставляйте при помощи CTRL+V в нужных местах. Например, в приложении №1 ниже.

Копирование элементов управления и демонстрация клонирования текста
Копирование элементов управления и демонстрация клонирования текста

А ещё попробуйте сначала выделить дату договора вверху документа и преобразовать её в элемент управления «выбор даты». Дайте ему имя «Дата договора». И копируйте его внизу по документу в «Соглашение…» и в «Приложение…». Появится возможность выбирать дату в календарике, и она будет размножаться автоматически в разных частях документа, там, куда вы скопируете этот элементу управления. Настраивая этот элемент, не пропустите возможность выбирать вариант отображения даты: краткий — «22.04.2022» или полный — «22 апреля 2022 г.»

Приём новый, ещё необкатанный, с благодарностью приму любые вопросы, мысли и замечания по его использованию на электронную почту oleg@vidyakin.ru.

Удачи в повышении эффективности своей работы в Word.