Word شامل یک ویژگی فهرست شماره گذاری داخلی است که می توانید برای توسعه سریع لیست های خود از آن استفاده کنید. این برای لیست هایی که به ترتیب صعودی هستند (1 تا 10) عالی است، اما برای لیست هایی که به ترتیب نزولی می خواهید (10 تا 1) چندان عالی نیست.
اگر به لیست های معکوس نیاز دارید، هیچ ویژگی خودکاری در Word وجود ندارد که به شما امکان ایجاد آنها را بدهد. یک راه حل این است که به سادگی شماره های لیست خود را ایجاد کنید و آنها را به ترتیب دلخواه قرار دهید. مشکل این است که فرآیند به صورت دستی فشرده است. علاوه بر این، اگر Enter را در انتهای یک آیتم فهرست موجود فشار دهید، ویژگی فهرست شمارهدار معمولی Word میتواند فهرست مرتب شده معکوس شما را خراب کند .
راه دیگر برای رسیدگی به این وضعیت این است که قبل از هر مورد در لیست خود یک فیلد SEQ قرار دهید تا شماره مورد فهرست را ایجاد کنید. پس از اتمام کار با موارد لیست، می توانید فیلدها را به روز کنید و پاراگراف ها را به ترتیب نزولی مرتب کنید. اشکال آشکار این روش این است که شما باید لیست اولیه خود را به ترتیب معکوس وارد کنید، زیرا مرتب سازی نهایی ترتیب را برای شما انجام می دهد. بنابراین، اگر 10 مورد داشتید، ابتدا شماره 10 و سپس شماره 9 و ... را وارد می کردید. وقتی مرتب سازی را انجام می دادید، ترتیب آیتم ها برعکس می شد و هر آیتم به ترتیب نهایی خود می رسید.
یکی دیگر از اشکالات این است که اضافه کردن موارد به لیست دست و پا گیر می شود و اگر فیلدهای سند خود را به روز کنید، اعداد به طور کامل حذف می شوند. بنابراین، باید رویکرد رضایتبخشتری پیدا کرد.
یک راه این است که فیلد SEQ را به گونه ای تغییر دهیم که ترتیب مورد نظر پاراگراف ها را به طور مناسب تری نشان دهد. استفاده از یک فیلد مرکب برای شماره لیست می تواند این کار را به شکل زیر انجام دهد:
{=NP - {SEQ RevList}}
در این مثال، کاراکترهای NP باید با عددی جایگزین شوند که یک عدد بیشتر از تعداد آیتمهای فهرست نهایی شما باشد. بنابراین، اگر لیست شما شامل 25 آیتم باشد، NP 26 خواهد بود. فیلد SEQ برای ایجاد یک ترتیب صعودی اعداد کسر شده از NP استفاده میشود تا یک شمارهگذاری با ترتیب معکوس نهایی ارائه شود.
تا زمانی که تعداد پاراگراف ها (موارد) لیست خود را بدانید و به یاد داشته باشید که فیلد را در ابتدای هر پاراگراف قرار دهید، در شرایط عالی هستید. اگر یکی از آنها را فراموش کنید، لیست شما حذف می شود. برای حل این مشکل، یک ماکرو می تواند مفید باشد. ماکروهای زیر (RevList و DoList) این کار را انجام خواهند داد.
Sub RevList()
Dim ShowFlag As Boolean
Dim Numparas As Integer
Dim Counter As Integer
Numparas = Selection.Paragraphs.Count
Selection.MoveLeft Unit:=wdCharacter, Count:=1
ShowFlag = ActiveWindow.View.ShowFieldCodes
ActiveWindow.View.ShowFieldCodes = True
DoList Numparas
Counter = 1
While Counter < Numparas
Selection.Move Unit:=wdParagraph, Count:=1
DoList Numparas
Counter = Counter + 1
Wend
ActiveWindow.View.ShowFieldCodes = ShowFlag
ActiveDocument.Select
ActiveDocument.Fields.Update
End Sub
Private Sub DoList(Cnt As Integer)
Selection.Extend
Selection.MoveRight Unit:=wdCharacter, Count:=1
If InStr(Selection.Text, "SEQ") > 0 Then
Selection.MoveRight Unit:=wdCharacter, Count:=2
Selection.Delete Unit:=wdCharacter, Count:=1
Else
Selection.Collapse Direction:=wdCollapseStart
End If
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="=" & Cnt + 1 & "-"
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False
Selection.TypeText Text:="SEQ RevList"
With Selection.ParagraphFormat
.LeftIndent = InchesToPoints(0.5)
.FirstLineIndent = InchesToPoints(-0.5)
End With
Selection.MoveRight Unit:=wdCharacter, Count:=4
Selection.InsertAfter "." & vbTab
End Sub
برای استفاده از ماکروها، کافی است پاراگراف هایی را که در لیست قرار می گیرند انتخاب کنید، سپس RevList را اجرا کنید که به نوبه خود از DoList استفاده می کند. فیلدهای مناسب در ابتدای هر پاراگراف قرار میگیرند (با حذف هر کدام که قبلاً وجود دارد)، و یک تورفتگی آویزان برای پاراگرافها اعمال میشود.
اگر میخواهید نحوه ایجاد تورفتگی آویزان را تغییر دهید، به سادگی خطوط را در ماکرو DoList که در آن ویژگیهای LeftIndent و FirstLineIndent تنظیم شدهاند، تغییر دهید.