В документах Jim’s Word есть много URL-адресов, которые не являются активными гиперссылками.

Каждый URL-адрес заключен в квадратные скобки с текстом [lt] и [gt]. Так, например, URL-адрес может выглядеть как [lt] `link: / https: — www.tips.net% 5Bgt% 5D. Джим задается вопросом, есть ли способ, которым макрос может найти текст между кодами скобок, создать гиперссылку из найденного текста, а затем удалить коды скобок.

Найти такие экземпляры несложно, если вы используете возможности поиска и замены с использованием подстановочных знаков. Все, что вам нужно сделать, это выполнить поиск по запросу «[lt]` * [gt] »(без кавычек) и убедиться, что вы указали, что выполняете поиск по шаблону. Сложность заключается в том, чтобы избавиться от кодов скобок и превратить все, что между ними, в активную гиперссылку.

Чтобы сделать все это за один проход, вам действительно нужно использовать макрос, как подозревал Джим. Даже в этом случае макрос не должен быть ужасно сложным.

Вот пример того, что поможет:

Sub AddHyperLinksAndClearBrackets()

Selection.Find.ClearFormatting     With Selection.Find         .Text = "\[lt\]*\[gt\]"

.Forward = True         .Wrap = wdFindContinue         .Format = False         .MatchCase = False         .MatchWholeWord = False         .MatchWildcards = True         .MatchSoundsLike = False         .MatchAllWordForms = False     End With

Selection.Find.Execute     Do While Selection.Find.Found         Selection = Mid(Selection, 5, Len(Selection) - 8)

ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _           Address:=Selection, SubAddress:=""

Selection.Find.Execute     Loop End Sub

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

Selection = Mid(Selection, 5, Len(Selection) - 8)

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

После удаления кодов скобок выполняется следующая строка:

ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _           Address:=Selection, SubAddress:=""

Эта строка преобразует оставшееся выделение (которое должно быть текстовой гиперссылкой) в активную гиперссылку.

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

_Примечание: _

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

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (672) относится к Microsoft Word 2007, 2010, 2013 и 2016.