Резюме
Microsoft Office Excel поддържа добавки за автоматизация в допълнение към добавките за обектен модел на компоненти (COM). Тази статия обяснява разликите между тези два типа добавки.
Повече информация
COM добавки
COM добавките предоставят на разработчика начин да разшири функционалността на приложенията на Office за задачи по избор. COM добавките обикновено се използват за автоматизиране на Excel в отговор на щракване на бутон на лентата с инструменти, формуляр или диалогов прозорец или някакво друго събитие, специфично за Excel, например отваряне или затваряне на работни книги или въвеждане на данни в работни листове. COM функциите за добавки не могат да бъдат директно извикани от формули в клетки в работни листове.
COM добавката е вграден в процеса COM сървър (ActiveX DLL), който трябва да реализира интерфейса IDTExensibility2. Всички COM добавки трябва да изпълняват всеки от петте метода на този интерфейс: OnConnection, OnStartupComplete, OnAddinsUpdate, OnBeginShutDown и OnDisconnection.
Когато дадена COM добавка се инсталира в системата на потребител, за добавката се създават записи в системния регистър. В допълнение към нормалната регистрация на COM се регистрира и COM добавка за всяко приложение на Office, в което се изпълнява. COM добавките, използвани от Excel, са регистрирани в следния ключ от системния регистър:
HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\
Този ключ съдържа подключ за всяка инсталирана добавка COM. Името на подключа е ПрогИД за COM добавката. Подключът за COM добавката съдържа също и стойности, които описват истинското име на COM добавката, описание и поведение при зареждане. Поведението при зареждане описва начина на зареждане на добавката в Excel: зарежда се при стартиране, зарежда се само при следващото стартиране, при поискване или не се зарежда.
COM добавките могат да се зареждат и разтоварват също така чрез потребителския интерфейс на Excel. За да направите това, изпълнете следните стъпки:
- В менюто "Изглед" посочете "Ленти с инструменти" и след това щракнете върху "Персонализиране".
- В диалоговия прозорец "Ленти с инструменти" щракнете върху раздела "Разширени". В списъка с категории изберете Инструменти. Намерете COM добавките в списъка с команди и плъзнете командата в меню или лента с команди по ваш избор. Затворете диалоговия прозорец "Ленти с инструменти".
- Щракнете върху командата за COM добавки, която добавихте, за да покажете диалоговия прозорец "COM добавки". В диалоговия прозорец са изредени всички COM добавки, които са инсталирани на вашата система, и са избрани COM добавките, които са заредени в момента.
COM добавките могат да се зареждат и разтоварват също така чрез потребителския интерфейс на Excel. За да направите това, изпълнете следните стъпки:
Щракнете върху бутона Microsoft Office , а после върху Опции на Excel.
Щракнете върху Добавки.
Под "Управление" щракнете върху "COM добавки" и след това върху "Почни ".
В диалоговия прозорец "COM добавки" са изредени всички COM добавки, които са инсталирани на компютъра. Избрани са COM добавките, които са заредени в момента.
За повече информация вижте следния уеб сайт на Microsoft:
Общ преглед на платформата за добавки на Office
Добавки за автоматизация
Освен COM добавките, Excel поддържа добавки за автоматизация. Добавките за автоматизация, изградени на базата на COM добавки, в които функциите в добавките за автоматизация могат да бъдат извикани от формули в работни листове на Excel. COM добавките трябва да бъдат текущи COM сървъри, поддържащи интерфейса IDTExtensibility2; въпреки това добавките за автоматизация могат да бъдат COM сървъри в процес или извън процес и внедряването на IDTExtensibility2 е опционално.
За да използвате функции от добавка за автоматизация в Excel, изпълнете следните стъпки:
- В менюто "Инструменти" щракнете върху "Добавки".
- В диалоговия прозорец "Add-Ins" щракнете върху "Автоматизация". От списъка с регистрирани COM сървъри изберете добавката за автоматизация и щракнете върху OK.
- Добавката за автоматизация се появява в диалоговия прозорец "Добавки". Щракнете върху OK, за да затворите диалоговия прозорец Add-Ins.
За да използвате функции от добавка за автоматизация в Excel 2007 и по-нови версии, изпълнете следните стъпки:
Щракнете върху бутона Microsoft Office , а после върху Опции на Excel.
Щракнете върху Добавки.
Под "Управление" щракнете върху "Добавяне на добавки" в Excel и след това върху "Почни".
В диалоговия прозорец " Добавки" щракнете върху "Автоматизация". В списъка с регистрирани COM сървъри щракнете върху вашата добавка за автоматизация и след това щракнете върху OK.
Добавката за автоматизация се появява в диалоговия прозорец "Добавки". Щракнете върху OK , за да затворите диалоговия прозорец " Добавки ".
Когато правите допълвания към списъка в диалоговия прозорец "Add-Ins" или когато изберете и изчистите добавките в списъка, Excel съхранява промените в системния регистър. Първо, Excel използва следната настройка на системния регистър, за да определи дали е заредена добавка за автоматизация в списъка с добавки:
Excel 2002
Key: HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Options
String: OPENx
Sample Value: /A "ServerName.ClassName"
Excel 2003
Key: HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options
String: OPENx
Sample Value: /A "ServerName.ClassName"
Excel 2007
Key: HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Options
String: OPENx
Sample Value: /A "ServerName.ClassName"
Забележка: Променете номера на версията на Office въз основа на версията, която използвате.
Ключът /A, който се използва в стойността на низа, е нов за Excel и по-стари версии и се използва специално за зареждане на добавките за автоматизация. Всички добавки за автоматизация се зареждат при поискване; няма настройка, която да променя поведението при зареждане за добавка за автоматизация.
Когато добавката за автоматизация, която е посочена в диалоговия прозорец Add-Ins, се създава подключ с име, равно на "ПрогИД" на добавката, в следния ключ от системния регистър:
HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Add-in Manager
Excel 2003:
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Add-in Manager
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Add-in Manager
Тази настройка на системния регистър гарантира, че добавките за автоматизация, които сте добавили към списъка с добавки, се запазват в списъка дори когато сте избрали да не ги зареждате.
За повече информация вижте следния уеб сайт на Microsoft:
Общ преглед на платформата за добавки на Office
Добавки за автоматизация, които реализират IDTExtensibility2
Както беше споменато преди, добавката за автоматизация може да реализира IDTExtensibility2, но това не е задължително, за да може Excel да извиква функциите в добавката от работен лист. Ако искате добавката за автоматизация да получава препратка към екземпляра на Excel, можете да реализирате IDTExtensibility2 и да използвате параметъра Application на OnConnection, за да автоматизирате Excel.
Добавка за автоматизация, която прилага
IDTExtensibility2 може да се зареди в потребителския интерфейс на Excel от диалоговия прозорец COM Add-Ins и Add-Ins диалоговия прозорец. По-долу се описва поведението на добавката за автоматизация в зависимост от това дали е заредена в единия, или в двата диалогови прозореца:
Зарежда се само в диалоговия прозорец "Добавки".
Добавката се зарежда при поискване. Функциите в добавката могат да бъдат извикани от формули в работен лист.
Зарежда се само в диалоговия прозорец "COM добавки".
Добавката се зарежда като COM добавка и поведението й при зареждане се определя от настройките в системния регистър. Функциите в добавката не могат да бъдат извикани от формули в работен лист.
Зареждат се както в диалоговия прозорец "COM добавки", така и в диалоговия прозорец "Добавки".
Зареждат се два отделни екземпляра на добавката. Единият екземпляр се зарежда като COM добавка, а другият екземпляр се зарежда като добавка за автоматизация. Екземплярът на COM добавката използва поведението при зареждане, посочено в системния регистър; Екземплярът на добавката за автоматизация се зарежда при поискване. Двата екземпляра работят независимо един от друг и не споделят глобални променливи.
Тъй като добавките за автоматизация се зареждат при поискване, Excel може да се опита да зареди добавката, докато е в режим на редактиране на клетка. Следователно, когато разработвате добавка за автоматизация, която поддържа IDTExtensibility2, трябва да внимавате да не направите нищо, което да се опитва да промени състоянието на Excel, докато добавката се зарежда. За повече информация вижте следната статия в базата знания на Microsoft:
284876 ГРЕШКА: Excel не работи, когато се зарежда Add-In автоматизация
(c) Microsoft Corporation 2001, All Rights Reserved. Принос от Лори Б. Търнър, Microsoft Corporation.