پیتر پرسید که آیا راهی وجود دارد که در هنگام راه اندازی اکسل مشخص شود که یک افزونه خاص نباید بارگذاری شود. افزونه ای که در ذهن دارد بارگیری زمان زیادی می برد و همیشه به آن نیاز ندارد. غیرفعال کردن افزونه کمک می کند تا اکسل را برای مواردی که نیازی به آن نیست، سریعتر راه اندازی کنید.
متأسفانه، برای غیرفعال کردن افزونه ها در هنگام راه اندازی نمی توان کاری انجام داد، زیرا هیچ ورک بوک خاصی از قبل باز نشده است. (افزونه ها قبل از هر ورک بوک بارگیری می شوند.) با این حال می توانید چند چیز را امتحان کنید.
اولین چیز این است که می توانید افزونه خود را بسازید که کاری جز پرسیدن اینکه آیا افزونه بزرگ باید بارگیری شود یا خیر، انجام نمی دهد. بسته به پاسخ کاربران، افزونه می تواند با استفاده از خط کد زیر بارگیری شود:
AddIns("Big Add-in").Installed = True
البته، باید نام افزونه واقعی را جایگزین «افزونه بزرگ» کنید تا بارگذاری شود. اگر کاربر نمی خواهد افزونه بارگیری شود، فقط از خط کد عبور کنید. در رویداد Close برای افزونه کوچک خود، می توانید خطی مانند شکل زیر اضافه کنید که افزونه بزرگ را بارگیری می کند:
AddIns("Big Add-in").Installed = False
به این ترتیب، افزونه تنها در صورتی اضافه می شود که کاربر بگوید مشکلی برای افزودن وجود دارد، و سپس همیشه در پایان جلسه اکسل شما بارگیری می شود.
روش دیگر این است که هرگز افزونه بزرگ را بارگیری نکنید، بلکه یک روال را در فایل Personal.xls خود قرار دهید که به کاربر فرصتی برای بارگیری افزونه می دهد. موارد زیر را می توان به رویداد Workbook_Open در Personal.xls اضافه کرد:
Private Sub Workbook_Open()
With Application
.OnKey "{TAB}", "InstallMyAddIn"
.OnTime (Now + TimeValue("0:00:05")), "DisableTABProc"
End With
End Sub
هدف از این ماکرو این است که به کاربر یک دوره زمانی - در این مورد پنج ثانیه - بدهد تا کلید Tab را فشار دهد تا افزونه بزرگ بارگیری شود. اگر Tab فشار داده شود، روش OnKey روال نصب را اجرا می کند و روال OnTime تایمری را شروع می کند که پس از گذشت پنج ثانیه، روال غیرفعال کردن را اجرا می کند. توجه داشته باشید که این ماکرو دو روتین را فراخوانی می کند. اینها می توانند در یک ماژول معمولی برای Personal.xls قرار بگیرند.
Sub InstallMyAddIn()
AddIns("Big Add-in").Installed = True
DisableTABProc
End Sub
Sub DisableTABProc()
Application.OnKey "{TAB}", ""
End Sub
البته، باید مقداری کد برای رویداد Workbook_Close Personal.xls اضافه کنید، در این مورد برای تخلیه افزونه:
Private Sub Workbook_Close()
AddIns("Big Add-in").Installed = False
End Sub
اگر ترجیح می دهید از ماکروها استفاده نکنید، همیشه می توانید افزونه بزرگ را از محل دایرکتوری آن منتقل کنید یا قبل از شروع اکسل، افزونه را تغییر دهید. اگر اکسل نتواند افزونه را پیدا کند، بدون بارگیری آن به بارگیری ادامه می دهد.