Mezga یک سری سلول دارد که حاوی هایپرلینک هستند. این هایپرلینک ها از کلماتی مانند «اینجا کلیک کنید» یا «اطلاعات بیشتر» تشکیل شده است. به عبارت دیگر، هر هایپرلینک حاوی متن نمایشی است که با URL اصلی که با کلیک روی پیوند فعال می شود، متفاوت است. Mezga میخواهد بداند که آیا راهی وجود دارد، بدون استفاده از ماکرو، URL زیربنایی را برای هر یک از این لینکها استخراج کرده و آن URL را در یک سلول متفاوت قرار دهد.
بدون استفاده از ماکرو، می توانید این کار را انجام دهید:

شکل 1. کادر محاوره ای Edit Hyperlink.
- روی یک هایپرلینک راست کلیک کنید. یک منوی زمینه ظاهر می شود.
- از منوی زمینه، Edit Hyperlink را انتخاب کنید. اکسل کادر محاوره ای Edit Hyperlink را نمایش می دهد. (شکل 1 را ببینید.)
- کل URL را از قسمت Address کادر محاوره ای ( Ctrl+C ) انتخاب و کپی کنید .
- برای بستن کادر گفتگوی Edit Hyperlink، Esc را فشار دهید .
- URL را در هر سلول مورد نظر قرار دهید.
توجه داشته باشید که این برای یک لینک واحد است. اگر تعداد زیادی لینک در یک کاربرگ دارید و می خواهید URL ها را بازیابی کنید، باید این کار را برای هر لینک انجام دهید. بدیهی است که این می تواند خیلی زود خسته کننده شود.
درمان بی حوصلگی - چه آنها را دوست داشته باشید یا نه - یک کلان است. با یک ماکرو، قرار گرفتن در URL زیربنایی یک هایپرلینک، بازی کودکانه است. تنها کاری که ماکرو باید انجام دهد این است که به ویژگی Address مربوط به هایپرلینک توجه کنید. در زیر نمونه ای از یک ماکرو است که هر هایپرلینک را در یک کاربرگ پیدا می کند، URL هر یک را استخراج می کند و آن URL را در سلول مستقیماً در سمت راست هایپرلینک می چسباند.
Sub ExtractHL()
Dim HL As Hyperlink
For Each HL In ActiveSheet.Hyperlinks
HL.Range.Offset(0, 1).Value = HL.Address
Next
End Sub
بهجای یک ماکرو «فور بیرحم»، همچنین میتوانید یک تابع تعریفشده توسط کاربر ایجاد کنید که URL را برای هر لینکی که به آن اشاره شده است استخراج و برمیگرداند:
Function GetURL(rng As Range) As String
On Error Resume Next
GetURL = rng.Hyperlinks(1).Address
End Function
در این صورت می توانید آن را در جایی که می خواهید قرار دهید. به عنوان مثال، اگر می خواهید URL یک هایپرلینک در A1 در سلول C25 لیست شود، سپس در سلول C25 فرمول زیر را وارد کنید:
=GetURL(A1)