دنیس یک ماکرو کوچک دارد که در حذف هایپرلینک ها از داخل یک سند کار بسیار خوبی انجام می دهد. او به تازگی یک سند جدید برای کار با آن دریافت کرده است، و دارای تعداد زیادی لینک در پاورقی است. ماکرو این هایپرلینک ها را حذف نمی کند، و حذف آنها به صورت دستی کار سختی است.
در واقع، راهی وجود دارد. در صورت تمایل می توانید با دنبال کردن مراحل زیر این کار را به صورت دستی انجام دهید:
- نشانگر درج را در بدنه یک پاورقی قرار دهید. (مهم نیست کدام پاورقی.)
- Ctrl+A را فشار دهید . این همه پاورقی ها را انتخاب می کند. (اگر تمام متن در سند شما انتخاب شده باشد، به این معنی است که شما مرحله 1 را انجام نداده اید.)
- Ctrl+Shift+F9 را فشار دهید . این کار لینک های موجود در متن انتخاب شده (پانوشت ها) را به متن معمولی تبدیل می کند.
باید توجه داشته باشید که این مراحل در واقع تمام فیلدهای متن انتخاب شده را به متن معمولی تبدیل می کند. از آنجایی که هایپرلینک ها از طریق استفاده از فیلدها پیاده سازی می شوند، تبدیل می شوند. اما، هر فیلد دیگری که ممکن است در پانوشت های شما باشد نیز همینطور است. اگر نمیخواهید فیلدهای دیگر را تغییر دهید، یا اگر نیاز به پرداختن به لینکها در پانوشتها دارید، ممکن است بخواهید در عوض از یک ماکرو استفاده کنید.
ماکرو زیر فقط از شر پیوندهای موجود در پاورقی خلاص می شود:
Sub RemoveFNH()
Dim h As Hyperlink
With ActiveDocument
If .Footnotes.Count >= 1 Then
With .StoryRanges(wdFootnotesStory)
For Each h In .Hyperlinks
h.Delete
Next h
End With
End If
End With
End Sub
توجه داشته باشید که بخش مهم ماکرو، مشخصات کار با محدوده داستانی wdFootnotesStory است. اسناد Word میتوانند از چندین محدوده داستان تشکیل شده باشند که هر یک عنصر متفاوتی را نشان میدهند، مانند سرصفحه، پاورقی، پاورقی، و غیره. اگر میخواهید لینکها را از تمام قسمتهای سند خود حذف کنید (که به معنای از همه محدودههای داستانی است)، پس شما می توانید از یک ماکرو حتی کوتاه تر استفاده کنید:
Sub RemoveAllHyperlinks()
Dim r As Range
Dim h As Hyperlink
For Each r In ActiveDocument.StoryRanges
For Each h In rng.Hyperlinks
h.Delete
Next h
Next r
End Sub
ماکرو از هر یک از محدوده های داستانی در سند عبور می کند و اگر لینک هایی در آن محدوده داستان وجود داشته باشد، هر یک از آنها را حذف می کند.