Автоматическое подчеркивание ссылок на разделы (Microsoft Word)
Агнес спросила, есть ли способ автоматически подчеркивать все вхождения слова «Раздел» и любую дополнительную информацию, следующую за словом.
Например, документ может содержать такой текст, как «Раздел 2.3 (b) (i)»
или «Раздел 5.21» или «Раздел 12.12 (а)», и Агнес хочет найти этот текст и сделать все, чтобы он был подчеркнут.
Есть несколько вещей, которые стоит попробовать. Прежде всего, вы можете выполнить стандартный поиск и замену, но только если вы сможете каким-то образом сделать текст более «стандартным». Без какого-либо шаблона, который можно сопоставить, практически невозможно выполнить поиск и замену, которые найдут все возможные экземпляры текста.
Однако есть возможность записать макрос, который действительно рассматривает все возможности. Это не обязательно будет простой макрос, так как ему нужно будет найти слово «Раздел», сразу за которым следует пробел, цифра, точка, другие цифры, а затем (необязательно) все, вплоть до закрывающей круглой скобки. Это довольно серьезный анализ текста, который необходимо выполнить.
Лучше всего начать с поиска по шаблону. Следующая поисковая фраза найдет слово «Раздел», за которым следует «число, точка, число»
узор:
Section [0-9]{1,}.[0-9]{1,}
Если этот шаблон поиска используется в макросе, то после каждого успешного нахождения текста макрос может начать расширять найденный текст и посмотреть, содержит ли он символы в скобках. Следующий макрос выполнит эту задачу.
Sub ULWords() Selection.Find.ClearFormatting With Selection.Find .Text = "Section [0-9]{1,}.[0-9]{1,}" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = True .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute While Selection.Find.Found Selection.MoveRight Unit:=wdCharacter, _ Count:=1, Extend:=wdExtend While Right(Selection.Text, 1) = "(" Selection.MoveRight Unit:=wdCharacter, _ Count:=1, Extend:=wdExtend While Right(Selection.Text, 1) <> ")" Selection.MoveRight Unit:=wdCharacter, _ Count:=1, Extend:=wdExtend Wend Selection.MoveRight Unit:=wdCharacter, _ Count:=1, Extend:=wdExtend Wend Selection.MoveRight Unit:=wdCharacter, _ Count:=-1, Extend:=wdExtend Selection.Font.Underline = True Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.Find.Execute Wend End Sub
Обратите внимание, что макрос использует поиск по шаблонам в начале, чтобы найти все вхождения слова «Раздел», за которым следует «номер точки номер»
шаблон. Если экземпляр найден, он расширяется на один символ.
Если этот символ является открывающей круглой скобкой, то выбор расширяется до тех пор, пока не будет найдена закрывающая скобка. Этот процесс поиска открывающих / закрывающих круглых скобок продолжается, и когда больше нет наборов, весь расширенный выбор подчеркивается. Этот процесс продолжается до тех пор, пока не будет выполнен поиск по всему документу.
_Примечание: _
Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
WordTips — ваш источник экономичного обучения работе с Microsoft Word.
(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (497) применим к Microsoft Word 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Word (Word 2007 и позже) здесь:
link: / wordribbon-Underlining_Section_References_Automatically [Автоматическое подчеркивание ссылок на разделы]
.