Карл работает в профессии, в которой используется много аббревиатур. Их стандартная процедура — определять аббревиатуру только в первый раз, когда она используется в документе. Кроме того, им всегда необходимо создавать приложение в конце документа, в котором перечисляются акронимы в алфавитном порядке вместе с их значениями. Карл ищет способ, возможно, «пометить»

аббревиатуру в основной части и автоматическое создание приложения аббревиатуры.

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

Если вы хотите использовать инструмент таблицы авторитетов для создания списка акронимов, Шона Келли составила отличную статью о том, как это можно сделать. В статье конкретно говорится о глоссариях, которые, по сути, представляют собой список сокращений.

http://www.ShaunaKelly.com/word/glossary/glossary.html

Если вы хотите использовать инструмент индексации для создания своего списка, вы можете выполнить следующие общие шаги, предполагая, что за аббревиатурой, если она определена, следует его значение в круглых скобках:

  1. Выберите аббревиатуру и ее значение. Это означает, что вы находите первый экземпляр акронима в своем документе, а затем выбираете этот акроним вместе со значением в скобках, которое следует за ним.

  2. Нажмите Alt + Shift + X, чтобы пометить выделенный текст для индекса.

  3. Повторите шаги 1 и 2 для других сокращений, которые вы хотите в своем списке.

  4. В конце документа вставьте индекс. О том, как на самом деле вставить указатель, рассказывалось в других выпусках 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 [Автоматическое создание списка сокращений].