بیل مجموعه ای از چندین کتاب کار دارد که اغلب به عنوان یک مجموعه از آنها استفاده می کند. او برای جلوگیری از نگاه کنجکاو به محتویات این کتاب های کار، برای هر کدام رمز عبور تعیین کرده است. بیل از یک کتاب کار منو به عنوان دروازه ای برای سایر کتاب های کار در مجموعه استفاده می کند. کتاب کار حاوی لینکهایی به کتابهای کاری فردی است که دسترسی سریع به کتابهای کاری مجموعه خود را برای او فراهم میکند.
از آنجایی که اکسل از طریق رمز عبور از هر کتاب کار بر اساس سطح فایل محافظت می کند، هر زمان که بیل روی لینکی کلیک می کند، باید رمز عبور کتاب کاری را که می خواهد به آن دسترسی پیدا کند وارد کند. او فکر می کند آیا راهی وجود دارد که به سادگی یک بار رمز عبور را وارد کنید (این رمز عبور برای همه کتاب های مجموعه او یکسان است) و بدون نیاز به وارد کردن مکرر رمز عبور به همه کتاب های کار دسترسی داشته باشید.
پاسخ کوتاه این است که نمی توان این کار را انجام داد زیرا اکسل هر فایل را جداگانه بررسی می کند. از طریق هایپرلینک خود به یک فایل جداگانه سوئیچ کنید و اکسل یک بار دیگر رمز عبور را درخواست می کند. تنها دو راه ممکن برای جلوگیری از آزار وجود دارد. اولین مورد این است که همه کتاب های کار جداگانه را در یک کتاب کار واحد ترکیب کنید. این ممکن است به هر دلیلی راه حل بهینه ای نباشد. (به عنوان مثال، ممکن است نیاز داشته باشید که کتابهای کاری جداگانه را بین کاربران دیگر توزیع کنید. اگر همه کتابهای کاری را در یکی ترکیب کنید، این قابلیت را حذف میکنید.)
راه حل دیگر استفاده از یک ماکرو برای جابجایی بین کتاب های کار است، به جای استفاده از لینک ها. راههای زیادی وجود دارد که میتوان چنین سیستم ماکرو را راهاندازی کرد، اما یک راه ساده که از روش هایپرلینک تقلید میکند، ایجاد یک کاربرگ جدید است که به عنوان "دروازه" شما عمل میکند. در سلول هایی که می خواهید هایپرلینک ها را اضافه کنید، به جای آن مسیر کامل و نام فایل هر کتاب کاری را که می خواهید به آن پیوند دهید قرار دهید. در نهایت باید لیستی از مشخصات فایل برای کتاب های کاری خود داشته باشید.
اکنون، روی برگه شیت این کاربرگ جدید کلیک راست کنید. اکسل یک منوی زمینه را نمایش می دهد که از آن باید View Code را انتخاب کنید. این ویرایشگر VBA را با صفحه کد نمایش داده شده برای کاربرگ نمایش می دهد. ماکرو زیر را در قسمت کد وارد کنید:
Private Sub Worksheet_BeforeDoubleClick _
(ByVal Target As Excel.Range, Cancel As Boolean)
Dim sPW As String
Dim sFile As String
sPW = "password" Change to your password
sFile = Target.Value
If sFile <> "" Then
If Dir(sFile) <> "" Then
Workbooks.Open _
FileName:=sFile, _
password:=sPW
Cancel = True
End If
End If
End Sub
تنها چیزی که باید در کد تغییر دهید رمز عبوری است که میخواهید برای کتابهایی که به آن دسترسی دارید استفاده کنید. (کد فرض می کند که رمز عبور یکسان برای همه کتاب های کار استفاده می شود.)
Alt+Q را فشار دهید تا از ویرایشگر VBA خارج شوید و به صفحه کاری خود بازگردید. کتاب کار را ذخیره کنید و سپس روی هر یک از سلول های حاوی مسیر و نام فایل دوبار کلیک کنید. کاری که اکسل انجام می دهد این است که کنترل را به ماکرو منتقل می کند که مسیر و نام فایل را می گیرد و سپس آن کتاب کار را باز می کند.