ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
20 visibility
موضوع: آفیس توسط:

لیندا یک سند Word دارد که حاوی بسیاری از (1800+) لینک به منابع موجود در اینترنت است. او باید تمام لینک‌ها را تبدیل کند تا به یک URL در وب مطلق نباشند، بلکه به یک مکان نسبی در درایو USB اشاره کنند. نام فایل HTML در درایو USB همان چیزی است که در وب بود، فقط محل آن فایل HTML است که در حال تغییر است. لیندا در مورد بهترین راه برای انجام تبدیل تعجب می کند.

بهترین راه این است که تبدیل ها را با استفاده از ماکرو انجام دهید. هر لینک در سند شما در مجموعه Hyperlinks ذخیره می‌شود که به راحتی از طریق VBA قابل دسترسی است. این به شما این امکان را می دهد که از طریق مجموعه لینک ها قدم بردارید، آدرس های هر کدام را بررسی کنید و سپس تغییراتی در آنها ایجاد کنید. در اینجا نمونه ای از این ماکروها آورده شده است:

Sub ConvertHyperlinks()
    Dim sNewBase As String
    Dim sFile As String
    Dim sNewFile As String
    Dim sChanged As String
    Dim sNotChanged As String
    Dim sTemp As String
    Dim J As Integer
    Dim h As Hyperlink

    sNewBase = "c:myplace"
    sChanged = ""
    sNotChanged = ""

    For Each h In ActiveDocument.Hyperlinks
        sTemp = h.Address
        If Left(sTemp, 5) = "https:" Then
            sFile = ""
            For J = Len(sTemp) To 2 Step -1
                If Mid(sTemp, J, 1) = "/" Then
                    sFile = Right(sTemp, Len(sTemp) - J)
                    Exit For
                End If
            Next J

            If sFile > "" Then
                sNewFile = sNewBase & sFile
                h.Address = sNewFile
                sChanged = sChanged & sTemp & " (changed to " & _
                  sNewFile & ")" & vbCrLf
            Else
                sNotChanged = sNotChanged & sTemp & vbCrLf
            End If
        Else
            sNotChanged = sNotChanged & sTemp & vbCrLf
        End If
    Next h

    Documents.Add
    Selection.TypeText "The following hyperlinks were modified:" & vbCrLf
    Selection.TypeText sChanged & vbCrLf & vbCrLf
    Selection.TypeText "The following hyperlinks were not modified:" & vbCrLf
    Selection.TypeText sNotChanged & vbCrLf
End Sub

ماکرو با قدم گذاشتن در مجموعه Hyperlinks شروع می شود. هر آدرس به متغیر sTemp اختصاص داده می شود، که سپس بررسی می شود که آیا با "https:" شروع می شود یا خیر. برخی از لینک‌ها - برای مثال، آنهایی که برای آدرس‌های ایمیل یا فایل‌های موجود هستند - با این کاراکترها شروع نمی‌شوند. اگر مطابقت پیدا شد، کد از طریق آدرس به عقب برمی‌گردد تا اسلش نهایی را در آن آدرس پیدا کند. پیدا می شود، سپس sFile برابر با همه چیز بعد از اسلش نهایی تنظیم می شود، به این معنی که برابر با فایل HTML خواهد بود.

یک نکته جالب در اینجا این است که وقتی یک هایپرلینک در یک سند word ایجاد می‌کنید، Word کمی پردازش آنچه را که تایپ می‌کنید در مقایسه با آنچه واقعاً در هایپرلینک ذخیره می‌شود، انجام می‌دهد. به عنوان مثال، فرض کنید موارد زیر را در یک سند تایپ می کنید:

www.Tips.net

Word به طور خودکار آن را به عنوان یک وب سایت تشخیص می دهد و آن را به یک لینک تبدیل می کند. (البته با فرض اینکه Word را برای انجام تبدیل خودکار URL تنظیم کرده اید.) اگر به آدرسی که واقعاً در لینک ایجاد شده ذخیره شده است نگاه کنید، موارد زیر را مشاهده خواهید کرد:

https://www.Tips.net/

از آنجا که این آدرس با "https:" شروع می شود، ماکرو آن را چیزی قابل پردازش در نظر می گیرد. با این حال، حلقه ای که از طریق آدرس به دنبال آخرین کاراکتر اسلش به عقب برود، آن را در انتها پیدا خواهد کرد. این بدان معنی است که sFile به دلیل این کد خالی خواهد بود:

sFile = Right(sTemp, Len(sTemp) - J)

طول sTemp و J دقیقاً برای آخرین کاراکتر در رشته یکسان است، بنابراین sFile حاوی 0 کاراکتر سمت راست است، به این معنی که خالی است. نکته اصلی این است که حاوی نام فایل نخواهد بود، بنابراین URL اصلی به چیز دیگری تبدیل نمی شود.

برای اینکه ماکرو به درستی روی سیستم شما کار کند، باید رشته sNewBase را تغییر دهید تا حاوی هر چیزی باشد که می خواهید به ابتدای آدرس های پردازش شده اضافه شود. به یاد داشته باشید که همانطور که نوشته شده است، رشته پیش فرض اضافه شده به ابتدای یک فایل است. c:myplace". بنابراین "https://www.PCcloob.ir/privacy.html" به "c:myplaceprivacy.html" تغییر یافته است. این آدرس تبدیل شده، به طور دقیق، یک لینک نسبی نیست. هایپرلینک نسبی در ابتدا کاراکترهای c: را ندارد، بنابراین در نهایت چیزی شبیه به "myplaceprivacy.html" خواهد بود. همانطور که شما می خواهید آنها را نگاه کنید.

زمان زیادی طول نمی کشد تا ماکرو اجرا شود، بدون در نظر گرفتن تعداد لینک های موجود در سند شما، بسیار سریع است. هنگامی که ماکرو کامل شد، سند جدیدی ایجاد می کند که لینک های اصلاح شده و آن هایی را که اصلاح نشده اند را نشان می دهد.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

613 دیدگاه

10.8k کاربر

204 نفر آنلاین
0 عضو و 204 مهمان در سایت حاضرند
بازدید امروز: 11295
بازدید دیروز: 13001
بازدید کل: 19465589
...