جنیفر یک سند Word دارد که به صدها سند دیگر پیوند دارد. اکنون او میخواهد هر یک از آن پیوندها را با سند واقعی که به آن ارجاع داده شده است جایگزین کند. (به عبارت دیگر، او میخواهد اسناد ارجاعشده را جاسازی کند.) او به این فکر میکند که آیا یک راه جهانی برای انجام این کار وجود دارد به جای اینکه هر سند را جداگانه انجام دهد.
راه حل بستگی به این دارد که چگونه، دقیقا، سایر اسناد را به سند فعلی خود پیوند دهید. اگر محتویات فایل دیگری را با استفاده از دستور Text from File (درج برگه | Object | Text from File) وارد کرده باشید و به عنوان پیوند درج کنید، محتویات فایل در واقع با استفاده از قسمت INCLUDETEXT اضافه می شوند. مانند هر فیلد دیگری، می توانید پیوند فیلد را به این صورت لغو کنید:
- فیلد را انتخاب کنید. (یا اگر فیلدهای زیادی دارید، Ctrl+A را فشار دهید تا کل سند را انتخاب کنید.)
- Ctrl+Shift+F9 را فشار دهید . Word پیوند فیلدها را قطع می کند و متنی را که فیلدها نشان می دادند باقی می گذارد.
اگر اسناد شما با استفاده از هایپرلینک ها پیوند داده شده اند، این روند کمی دشوارتر است. دلیل ساده است: یک هایپرلینک فقط یک اشاره گر به سند دیگر است، نه محتوای واقعی آن سند دیگر. این بدان معنی است که شما باید راهی برای باز کردن سند دیگر، گرفتن محتویات آن و قرار دادن آن در سند فعلی به جای لینک فوق بیابید.
این نوع کار برای یک ماکرو عالی است. مثال زیر در واقع از طریق هر لینک به عقب رفته و فایل ها را درج می کند:
Sub InsertDocs() Dim aRange As Range Dim J As Long Set aRange = ActiveDocument.RangeGo backwards because hyperlinks are deleted as processed For J = aRange.Hyperlinks.Count to 1 Step -1 With aRange.Hyperlinks(J)Process only hyperlinks to documents If InStr(.Address, ".doc") > 0 Then .Range.Select On Error GoTo noFile .Follow On Error GoTo 0 ActiveDocument.Range.Copy ActiveDocument.Close Selection.Paste End If GoTo nextFile noFile: On Error GoTo 0 MsgBox "Cannot open file " & .Address nextFile: End With Next J End Sub
توجه داشته باشید که ماکرو لینک را بررسی می کند تا مطمئن شود که حاوی حروف ".doc" است. این بدان معنا نیست که فقط به فایلهای DOC. قدیمی محدود میشود، زیرا آزمون با حروف ".docx" و ".docm" نیز مطابقت دارد.