Annemieke سندی دارد که نسبتا طولانی است و شامل تعداد زیادی لینک است. او میخواهد همه آن پیوندها (و فقط لینکها) را در یک سند کاملاً جدید کپی کند تا فهرستی از آنها را در یک مکان داشته باشد. او تعجب می کند که آیا راه آسانی برای انجام این کار وجود دارد.
تنها راه برای انجام این کار استفاده از ماکرو است. (پیشنهادهایی که شامل استفاده از Find و Replace یا یافتن متن با سبکهای خاص میشود، فقط متن پیوند را کپی میکند، نه ابرپیوند واقعی.) نکته کلیدی در ماکرو کار با مجموعه Hyperlinks است، و توجه ویژه به ویژگیهای TextToDisplay و Address هر یک از اعضای مجموعه
Sub PullHyperlinks()
Dim Src As Document
Dim Link As Hyperlink
Dim iDoDisplay As Integer
Set Src = ActiveDocument
If Src.Hyperlinks.Count > 0 Then
iDoDisplay = MsgBox("Include display text for links?", vbYesNo)
Documents.Add DocumentType:=wdNewBlankDocument
For Each Link In Src.Hyperlinks
If iDoDisplay = vbYes Then
Selection.TypeText Link.TextToDisplay
Selection.TypeText vbTab
End If
Selection.TypeText Link.Address
Selection.TypeParagraph
Next Link
Else
MsgBox "There are no hyperlinks in this document."
End If
End Sub
ماکرو ابتدا بررسی میکند که آیا پیوندهایی در سند فعلی وجود دارد یا خیر. در صورت وجود، فرآیند بیرون کشیدن آنها می تواند ادامه یابد. اگر وجود نداشته باشد، پیامی به همین منظور نمایش داده می شود.
با فرض وجود هایپرلینک در سند، از کاربر پرسیده می شود که آیا سند جدید باید حاوی متن نمایش لینک ها باشد یا خیر. سپس ماکرو یک سند جدید ایجاد می کند و هر یک از اعضای مجموعه Hyperlinks را طی می کند. مقدار ویژگی TextToDisplay به سند جدید (در صورت لزوم) اضافه می شود و سپس مقدار ویژگی Address قرار می گیرد.