
Tips.Net > WordTips Home > Tools > Auto Creation of an Acronym List
Summary: If you use a lot of acronyms in your documents, you may want a quick way to compile those acronyms and their definitions into an appendix. This tip provides several different approaches you can use to creating just such a helpful addition to your document. (This tip works with Microsoft Word 97, Word 2000, Word 2002, Word 2003, and Word 2007.)
Karl works in an occupation that uses a lot of acronyms. Their standard procedure is to define the acronym only the first time it's used within the document. In addition, they always need to create an appendix, at the end of the document, listing the acronyms in alphabetical order along with their meanings. Karl is looking for a way to perhaps "mark" the acronym in the main body and have the acronym appendix be automatically created.
There is no way to do this directly in Word. There are several types of tables you can create automatically, such as tables of contents, tables of authorities, and indexes. These last two tables (tables of authorities and indexes) could possibly be used to create the acronym list, but only if they are not already being added to your document and only if you don't mind your acronym list including page numbers.
If you want to use the table of authorities tool in order to create an acronym list, Shauna Kelly has put together a great article on how this can be done. The article specifically talks about glossaries, which essentially what an acronym list would be.
http://www.ShaunaKelly.com/word/glossary/glossary.html
If you want to use the index tool in order to create your list, you can follow these general steps, assuming that the acronym, when defined, is followed by its meaning within parentheses:
You'll note that this approach leaves the parentheses in your index. If you don't want the parentheses, then you'll need to go to each acronym that you marked and display the field code used for the index. It will look something like this:
{ XE "abbrev (this is the definition)" }
Within the field code you can remove the parentheses so that the text appears just as you want it to appear in the acronym list. If you use the above method to mark only the first instance of the acronym--where it is first defined--then there will be a single page number for each acronym in your list. If you like the idea of having page numbers, but want them for all instances of each acronym, then you'll need to mark each occurrence of the acronyms--a much more involved task.
If you prefer not to use the either of the methods already described, you could create a macro that will aid you in creating your acronym list. The following macro essentially copies whatever text you have highlighted to the end of the document.
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
The idea is to select your first instance of the acronym, along with its definition, and then invoke the macro. A bookmark is set at the current location, the text is copied, the end of the document is selected, and the text added there. Then the bookmark is used so that the original location can again be selected.
When you are done "marking" your acronyms in this manner, you can select the text that was copied ot the end of the document and format it (or edit it) in any way desired.
If you want an approach that is even more automated, then you may be able to create a macro that will scan through your document and extract any acronyms it finds. In order for an approach like this to work, you'll need to make sure that you religiously follow a rigid structure for your acronyms and their definitions. The following macro assumes that the acronym will always be a string of uppercase letters followed by a space and then some parenthetical text.
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
The macro looks through the document for anything it thinks might be an acronym. If it finds a candidate, it looks after it to see if it is followed by an opening parenthesis. If so, then everything up to the closing parenthesis is considered the definition for the acronym. Once the macro is finished going through the document, it creates a new document, adds the acronyms there, and then sorts them all.
Tip #446 applies to Microsoft Word versions: 97 2000 2002 2003 2007
Take Control! Experienced users know that styles can make the difference between a plain document and a masterful one. This is the real power behind Word, and the key to that power can be found in WordTips: Styles and Templates.
Have thousands of WordTips at your fingertips, on your own system. Answer your own questions or help support others. (more information...)
Ask a Word Question
Make a Comment
Beauty Tips
Bugs and Pests Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Money Tips
Organizing Tips
Pet Tips
Word2007 Tips
WordTips