Shrnutí
Aplikace systém Microsoft Office Excel podporuje kromě doplňků modelu COM (Component Object Model) také doplňky pro automatizaci. Tento článek vysvětluje rozdíly mezi těmito dvěma typy doplňků.
Další informace
Doplňky modelu COM
Doplňky modelu COM představují vývojářům způsob, jak rozšířit funkčnost aplikací Office o vlastní úkoly. Doplňky modelu COM se obvykle používají k automatizaci Excelu v reakci na kliknutí na tlačítko na panelu příkazů, formulář nebo dialogové okno nebo jinou událost specifickou pro Excel, jako je otevření nebo zavření sešitů nebo zadání dat do listu. Funkce doplňku modelu COM nelze přímo volat ze vzorců buněk v listech.
Doplněk modelu COM je vnitroprocesový server modelu COM (knihovna ActiveX DLL), který musí implementovat rozhraní IDTExensibility2. Všechny doplňky modelu COM musí implementovat každou z pěti metod tohoto rozhraní: OnConnection, OnStartupComplete, OnAddinsUpdate, OnBeginShutDown a OnDisconnection.
Při instalaci doplňku modelu COM do systému uživatele jsou pro něj vytvořeny položky registru. Kromě běžné registrace modelu COM se doplněk modelu COM registruje pro každou aplikaci Office, ve které spouští. Doplňky modelu COM používané aplikací Excel jsou registrovány v následujícím klíči registru:
HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\
Tento klíč obsahuje podklíč pro každý nainstalovaný doplněk modelu COM. Název podklíče je ProgID doplňku modelu COM. Podklíč doplňku modelu COM obsahuje také hodnoty, které popisují popisný název, popis a chování při načítání doplňku modelu COM. Chování načítání popisuje, jak je doplněk načten v aplikaci Excel: načten při spuštění, načten pouze při příštím spuštění, načten na vyžádání nebo nebyl zaveden.
Doplňky modelu COM se taky dají načítat a uvolňovat prostřednictvím uživatelského rozhraní Excelu. Postupujte takto:
- V nabídce View (Zobrazit) přejděte na Toolbars (Panely nástrojů) a pak klikněte na Customize (Přizpůsobit).
- V dialogovém okně Panely nástrojů klikněte na kartu Upřesnit. V seznamu kategorií vyberte Nástroje. Vyhledejte doplňky modelu COM v seznamu příkazů a přetáhněte příkaz do nabídky nebo panelu příkazů podle svého výběru. Zavřete dialogové okno Panely nástrojů.
- Klikněte na příkaz Doplňky modelu COM, který jste přidali, a zobrazte tak dialogové okno Doplňky modelu COM. V dialogovém okně je uveden seznam všech doplňků modelu COM, které jsou nainstalovány v systému, a jsou vybrány aktuálně načtené doplňky modelu COM.
Doplňky modelu COM se taky dají načítat a uvolňovat prostřednictvím uživatelského rozhraní Excelu. Postupujte takto:
Klikněte na tlačítko Microsoft Office a potom klikněte na Možnosti aplikace Excel.
Klikněte na položku Doplňky.
V části Spravovat klikněte na položku Doplňky modelu COM a poté klikněte na tlačítko Přejít .
Dialogové okno Doplňky modelu COM obsahuje seznam všech doplňků modelu COM, které jsou nainstalované v počítači. Vyberou se doplňky modelu COM, které jsou aktuálně načtené.
Další informace naleznete na následujícím webu společnosti Microsoft:
Přehled platformy doplňků pro Office
Doplňky pro automatizaci
Kromě doplňků modelu COM podporuje Excel také doplňky pro automatizaci. Doplňky pro automatizaci jsou založené na doplňcích modelu COM, takže funkce v nich lze volat ze vzorců v listech aplikace Excel. Doplňky modelu COM musí být vnitroprocesové servery COM, které podporují rozhraní IDTExtensibility2. Automatizační doplňky však mohou být servery COM v procesu nebo mimo proces a implementace IDTExtensibility2 je volitelná.
Pokud chcete použít funkce z doplňku pro automatizaci v Excelu, postupujte takto:
- V nabídce Tools (Nástroje) klikněte na Add-Ins.
- V dialogovém okně Add-Ins klikněte na položku Automatizace. Ze seznamu registrovaných serverů COM vyberte doplněk pro automatizaci a klikněte na tlačítko OK.
- Doplněk pro automatizaci se zobrazí v dialogovém okně Doplňky. Kliknutím na tlačítko OK zavřete dialogové okno Add-Ins.
Pokud chcete používat funkce z doplňku pro automatizaci v Excelu 2007 nebo novějším, postupujte takto:
Klikněte na tlačítko Microsoft Office a potom klikněte na Možnosti aplikace Excel.
Klikněte na položku Doplňky.
V části Spravovat klikněte na Doplňky Excelu a potom klikněte na Přejít.
V dialogovém okně Doplňky klikněte na položku Automatizace. V seznamu registrovaných serverů COM klikněte na doplněk pro automatizaci a potom klikněte na tlačítko OK.
Doplněk pro automatizaci se zobrazí v dialogovém okně Doplňky . Kliknutím na OK zavřete dialogové okno Doplňky .
Při přidávání položek do seznamu v dialogovém okně Add-Ins nebo při výběru či zrušení výběru doplňků v seznamu aplikace Excel uloží vaše změny do registru. Aplikace Excel nejprve pomocí následujícího nastavení registru určí, zda je doplněk pro automatizaci v seznamu doplňků načten či nikoli:
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"
Poznámka: Změňte číslo verze Office podle verze, kterou používáte.
Přepínač /A, který se používá v řetězcové hodnotě, je v aplikaci Excel nový a starší a používá se konkrétně k načtení doplňků pro automatizaci. Všechny doplňky pro automatizaci se načítají na vyžádání; neexistuje žádné nastavení, které by mohlo změnit chování při načítání doplňku pro automatizaci.
Není-li zaškrtnuto políčko Doplněk pro automatizaci, který je uveden v dialogovém okně Add-Ins, je v následujícím klíči registru vytvořen podklíč s názvem shodným s názvem ProgID příslušného doplňku:
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
Toto nastavení registru zajišťuje, že doplňky pro automatizaci, které jste přidali do seznamu doplňků, zůstanou v seznamu zachovány, i když jste se rozhodli je nezavádět.
Další informace naleznete na následujícím webu společnosti Microsoft:
Přehled platformy doplňků pro Office
Automatizační doplňky, které implementují IDTExtensibility2
Jak již bylo zmíněno dříve, doplněk pro automatizaci může implementovat funkci IDTExtensibility2, není to však nutné k tomu, aby aplikace Excel volala funkce v doplňku ze sešitu. Pokud požadujete, aby doplněk pro automatizaci získal odkaz na instanci Excelu, můžete Excel automatizovat pomocí parametru Application pro OnConnection.
Doplněk pro automatizaci, který implementuje
IDTExtensibility2 lze načíst v uživatelském rozhraní aplikace Excel pomocí dialogového okna Add-Ins modelu COM i dialogového okna Add-Ins. Následující text popisuje chování doplňku pro automatizaci na základě toho, jestli je načtený v jednom nebo obou těchto dialogových oknech:
Pouze v dialogovém okně Doplňky.
Doplněk se načte na vyžádání. Funkce v doplňku mohou být volány ze vzorců v listu.
Zavedeno pouze v dialogovém okně Doplňky modelu COM.
Doplněk je zaveden jako doplněk modelu COM a jeho chování při načítání je určeno nastavením v registru. Funkce v doplňku nejde volat ze vzorců na listu.
Načítáno v dialogovém okně Doplňky modelu COM i v dialogovém okně Doplňky.
Načtou se dvě samostatné instance doplňku. Jedna instance je načtena jako doplněk modelu COM a druhá instance je zavedena jako doplněk pro automatizaci. Instance doplňku modelu COM používá chování při načítání uvedené v registru. Instance doplňku automatizace se načte na vyžádání. Tyto dvě instance pracují nezávisle na sobě a nesdílejí globální proměnné.
Vzhledem k tomu, že se doplňky pro automatizaci načítají na vyžádání, může se Excel pokusit načíst doplněk v době, kdy je v režimu úprav buňky. Proto byste při vývoji automatizačního doplňku, který podporuje IDTExtensibility2, měli dbát na to, abyste neudělali nic, co by se pokusilo změnit stav Excelu během načítání doplňku. Další informace naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
284876 CHYBA: Excel selže při načtení automatizace Add-In
(c) Microsoft Corporation 2001, všechna práva vyhrazena. Příspěvky od Lori B. Turner, Microsoft Corporation.