Исключение определенной надстройки при запуске (Microsoft Excel)
Питер спросил, есть ли способ указать при запуске Excel, что конкретная надстройка не должна загружаться. Надстройка, которую он задумал, требует много времени для загрузки, и она ему не нужна постоянно. Отключение надстройки поможет быстрее запустить Excel в тех случаях, когда в нем нет необходимости.
К сожалению, мало что можно сделать для отключения надстроек при запуске, потому что ни одна конкретная книга еще не открыта. (Надстройки загружаются раньше любых рабочих книг.) Однако есть несколько вещей, которые вы можете попробовать.
Во-первых, вы можете создать свою собственную надстройку, которая ничего не делает, кроме как спрашивать, следует ли загружать большую надстройку или нет.
В зависимости от ответа пользователя надстройка может быть загружена с помощью следующей строки кода:
AddIns("Big Add-in").Installed = True
Конечно, вам нужно будет заменить «Big Add-in» на имя фактической надстройки, которую нужно загрузить. Если пользователь не хочет, чтобы надстройка загружалась, просто пропустите строку кода. В событии Close для вашей маленькой надстройки вы можете добавить строку, подобную следующей, которая выгружает большую надстройку:
AddIns("Big Add-in").Installed = False
Таким образом, надстройка добавляется только в том случае, если пользователь говорит, что ее можно добавить, а затем всегда выгружается в конце сеанса Excel.
Другой подход — никогда не загружать большую надстройку, а поместить в файл 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, чтобы загрузить большую надстройку. Метод .OnKey запускает процедуру установки, если нажата клавиша Tab, а процедура .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
Если вы предпочитаете не использовать макросы, вы всегда можете просто переместить большую надстройку из ее каталога или переименовать надстройку перед запуском Excel. Если Excel не может найти надстройку, она продолжит загрузку, не загружая ее.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (12005) применим к Microsoft Excel 2007, 2010, 2013 и 2016.
Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Excluding_a_Specific_Add-In_at_Startup [Исключение определенной надстройки при запуске]
.