Автоматическое создание списка сокращений (Microsoft Word)
Карл работает в профессии, в которой используется много аббревиатур. Их стандартная процедура — определять аббревиатуру только в первый раз, когда она используется в документе. Кроме того, им всегда необходимо создавать приложение в конце документа, в котором перечисляются акронимы в алфавитном порядке вместе с их значениями. Карл ищет способ, возможно, «пометить»
аббревиатуру в основной части и автоматическое создание приложения аббревиатуры.
Нет возможности сделать это прямо в Word. Есть несколько типов таблиц, которые вы можете создавать автоматически, например, оглавление, авторитетные таблицы и указатели. Эти две последние таблицы (авторитетные таблицы и индексы) могут быть использованы для создания списка сокращений, но только в том случае, если они еще не добавлены в ваш документ, и только если вы не возражаете против своего списка сокращений, включая номера страниц.
Если вы хотите использовать инструмент таблицы авторитетов для создания списка акронимов, Шона Келли составила отличную статью о том, как это можно сделать. В статье конкретно говорится о глоссариях, которые, по сути, представляют собой список сокращений.
http://www.ShaunaKelly.com/word/glossary/glossary.html
Если вы хотите использовать инструмент индексации для создания своего списка, вы можете выполнить следующие общие шаги, предполагая, что за аббревиатурой, если она определена, следует его значение в круглых скобках:
-
Выберите аббревиатуру и ее значение. Это означает, что вы находите первый экземпляр акронима в своем документе, а затем выбираете этот акроним вместе со значением в скобках, которое следует за ним.
-
Нажмите Alt + Shift + X, чтобы пометить выделенный текст для индекса.
-
Повторите шаги 1 и 2 для других сокращений, которые вы хотите в своем списке.
-
В конце документа вставьте индекс. О том, как на самом деле вставить указатель, рассказывалось в других выпусках WordTips.
Вы заметите, что при таком подходе в индексе остаются скобки. Если вам не нужны круглые скобки, вам нужно будет перейти к каждому отмеченному вами сокращению и отобразить код поля, используемый для индекса. Это будет выглядеть примерно так:
{ XE "abbrev (this is the definition)" }
В коде поля вы можете удалить круглые скобки, чтобы текст отображался именно так, как вы хотите, чтобы он отображался в списке сокращений. Если вы используете описанный выше метод для отметки только первого экземпляра аббревиатуры — там, где она определена впервые — тогда для каждой аббревиатуры в вашем списке будет отдельный номер страницы. Если вам нравится идея иметь номера страниц, но вы хотите, чтобы они использовались для всех экземпляров каждого акронима, тогда вам нужно будет пометить каждое вхождение акронима — гораздо более сложная задача.
Если вы предпочитаете не использовать ни один из уже описанных методов, вы можете создать макрос, который поможет вам в создании списка сокращений. Следующий макрос по сути копирует выделенный вами текст в конец документа.
Sub Send_2_acronym_list() With ActiveDocument.Bookmarks .Add Range:=Selection.Range, Name:="xxxHERExxx" .DefaultSorting = wdSortByName .ShowHidden = True End With Selection.Copy Selection.EndKey Unit:=wdStory Selection.TypeParagraph Selection.PasteAndFormat (wdPasteDefault) Selection.GoTo What:=wdGoToBookmark, Name:="xxxHERExxx" Application.Run MacroName:="Normal.MoreNewMacros.EditGoTo" Selection.MoveRight Unit:=wdCharacter, Count:=1 End Sub
Идея состоит в том, чтобы выбрать первый экземпляр аббревиатуры вместе с его определением, а затем вызвать макрос. Закладка устанавливается в текущем месте, текст копируется, конец документа выбирается и туда добавляется текст. Затем закладка используется, чтобы можно было снова выбрать исходное местоположение.
Когда вы закончите «отмечать» свои акронимы таким образом, вы можете выбрать текст, который был скопирован в конец документа, и отформатировать его (или отредактировать) любым желаемым образом.
Если вам нужен еще более автоматизированный подход, вы можете создать макрос, который будет сканировать ваш документ и извлекать любые найденные сокращения. Чтобы такой подход сработал, вам нужно убедиться, что вы неукоснительно следуете жесткой структуре ваших сокращений и их определений. В следующем макросе предполагается, что аббревиатура всегда будет строкой прописных букв, за которой следует пробел, а затем текст в скобках.
Sub ListAcronyms() Dim strAcronym As String Dim strDefine As String Dim strOutput As String Dim newDoc As Document Application.ScreenUpdating = False Selection.HomeKey Unit:=wdStory ActiveWindow.View.ShowHiddenText = False 'Loop to find all acronyms Do 'Search for acronyms using wildcards Selection.Find.ClearFormatting With Selection.Find .ClearFormatting .Text = "<[A-Z]@[A-Z]>" .Replacement.Text = "" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = True .MatchWildcards = True .MatchWholeWord = True .Execute End With 'Only process if something found If Selection.Find.Found Then 'Make a string from the selection, add it to the 'output string strAcronym = Selection.Text 'Look for definition Selection.MoveRight Unit:=wdWord Selection.MoveRight Unit:=wdCharacter, _ Extend:=wdExtend strDefine = "" If Selection.Text = "(" Then While Selection <> ")" strDefine = strDefine & Selection.Text Selection.Collapse Direction:=wdCollapseEnd Selection.MoveRight Unit:=wdCharacter, _ Extend:=wdExtend Wend End If Selection.Collapse Direction:=wdCollapseEnd If Left(strDefine, 1) = "(" Then strDefine = Mid(strDefine, 2, Len(strDefine)) End If If strDefine > "" Then 'Check if the search result is in the Output string 'if it is, ignore the search result If InStr(strOutput, strAcronym) = 0 Then strOutput = strOutput & strAcronym _ & vbTab & strDefine & vbCr End If End If End If Loop Until Not Selection.Find.Found 'Create new document and change active document Set newDoc = Documents.Add 'Insert the text Selection.TypeText Text:=strOutput 'Sort it newDoc.Content.Sort SortOrder:=wdSortOrderAscending Application.ScreenUpdating = True Selection.HomeKey Unit:=wdStory End Sub
Макрос просматривает документ в поисках всего, что, по его мнению, может быть акронимом. Если он находит кандидата, он проверяет, следует ли за ним открывающая скобка. Если это так, то все до закрывающей круглой скобки считается определением аббревиатуры. Когда макрос завершает просмотр документа, он создает новый документ, добавляет туда акронимы и затем сортирует их.
_Примечание: _
Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
WordTips — ваш источник экономичного обучения работе с Microsoft Word.
(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (10935) относится к Microsoft Word 2007 и 2010. Вы можете найти версию этого совета для старого интерфейса меню Word здесь:
link: / word-Auto_Creation_of_an_Acronym_List [Автоматическое создание списка сокращений]
.