Word یک ابزار نشانک بسیار قدرتمند ارائه می دهد که به شما امکان می دهد نام ها را به موقعیت های فردی در سند خود یا به انتخاب های متن اختصاص دهید. همانطور که بیشتر با Word کار می کنید، به ویژه در اسناد طولانی، چاپ دوره ای فهرستی از نشانک ها مفید خواهد بود. متأسفانه، Word روشی خودکار برای چاپ نشانکها ارائه نمیکند، همانطور که در مورد سایر اطلاعات مربوط به سند ارائه میکند. سریعترین راه برای چاپ لیست نشانک این است که فقط لیست را در سند خود وارد کنید و سپس آن را چاپ کنید. ماکرو VBA زیر لیست نشانک را در نقطه درج قرار می دهد:
Sub BkMkList1() Dim J as Integer Selection.TypeParagraph Selection.InsertBreak Type:=wdColumnBreak Selection.TypeText Text:="Bookmark list for " Selection.TypeText Text:=ActiveDocument.Name Selection.TypeParagraph For J = 1 To ActiveDocument.Bookmarks.Count Selection.TypeText Text:=Chr(9) Selection.TypeText Text:=ActiveDocument.Bookmarks(J).Name Selection.TypeParagraph Next J Selection.InsertBreak Type:=wdColumnBreak End Sub
هنگامی که ماکرو را اجرا می کنید، عنوانی که نام فایل را نشان می دهد و به دنبال آن هر نشانک موجود در فایل درج می شود. اینها به ترتیب حروف الفبا خواهند بود. لیست نشانک دارای یک شکست ستونی قبل و بعد از آن است. سپس می توانید تک صفحه ای را که حاوی لیست نشانک است چاپ کنید. پس از اتمام چاپ، می توانید لیست نشانک ها را حذف کنید.
باید توجه داشته باشید که ماکرو همه نشانکهای سند را چاپ میکند، از جمله نشانکهای تولید شده توسط سیستم. اگر میخواهید آنها را حذف کنید، میتوانید از یک نسخه کمی تغییر یافته ماکرو مانند زیر استفاده کنید:
Sub BkMkList2() Dim J as Integer Selection.TypeParagraph Selection.InsertBreak Type:=wdColumnBreak Selection.TypeText Text:="Bookmark list for " Selection.TypeText Text:=ActiveDocument.Name Selection.TypeParagraph For J = 1 To ActiveDocument.Bookmarks.Count With ActiveDocument.Bookmarks(J) If Left(.Name, 1) <> "_" Then Selection.TypeText Text:=Chr(9) Selection.TypeText Text:=.Name Selection.TypeParagraph End If End With Next J Selection.InsertBreak Type:=wdColumnBreak End Sub