Создание гиперссылок из закодированного текста (Microsoft Word)
В документах 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.