کارل در شغلی کار می کند که از کلمات اختصاری زیادی استفاده می کند. رویه استاندارد آنها این است که تنها اولین باری که در سند استفاده می شود، مخفف را تعریف می کنند. علاوه بر این، آنها همیشه باید یک ضمیمه در انتهای سند ایجاد کنند که کلمات اختصاری را به ترتیب حروف الفبا همراه با معانی آنها فهرست کند. به دنبال راهی برای "علامت گذاری" مخفف در بدنه اصلی و ایجاد خودکار ضمیمه مخفف است.
هیچ راهی برای انجام مستقیم این کار در Word وجود ندارد. انواع مختلفی از جدول وجود دارد که می توانید به طور خودکار ایجاد کنید، مانند فهرست مطالب، جداول مقامات، و فهرست ها. این دو جدول آخر (جدول مقامات و نمایه ها) احتمالاً می توانند برای ایجاد لیست اختصاری استفاده شوند، اما فقط در صورتی که قبلاً به سند شما اضافه نشده باشند و فقط در صورتی که به فهرست مخفف خود از جمله شماره صفحه اهمیتی نداشته باشید.
اگر می خواهید از ابزار جدول مقامات برای ایجاد یک لیست اختصاری استفاده کنید، Shauna Kelly یک مقاله عالی در مورد چگونگی انجام این کار گردآوری کرده است. مقاله به طور خاص در مورد واژه نامه ها صحبت می کند، که اساساً یک لیست مخفف چیست.
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
ماکرو هر چیزی را که فکر می کند ممکن است مخفف باشد از طریق سند جستجو می کند. اگر نامزدی را پیدا کرد، به دنبال آن میگردد تا ببیند آیا پرانتز آغازین به دنبال آن آمده است یا خیر. اگر چنین است، پس همه چیز تا پرانتز پایانی تعریف مخفف در نظر گرفته می شود. هنگامی که ماکرو از طریق سند به پایان رسید، یک سند جدید ایجاد می کند، کلمات اختصاری را در آنجا اضافه می کند و سپس همه آنها را مرتب می کند.