Pokud jste vytvořili doplněk, který bude obsahovat vaše vlastní funkce Excelu, možná jste zjistili, že přestože funkce v listu Excelu fungují dobře, nemůžete je použít v postupech VBA v jiných sešitech. Je to, jako kdyby editor jazyka Visual Basic nemohl vidět jim. No to proto, že to nejde! Tento článek vysvětluje, jak to můžete opravit.
Nejprve zvažte, zda je to opravdu to, co chcete dělat. Doplňky jsou určeny především k přidání dalších funkcí do vašich sešitů. Když načtete doplněk aplikace Excel, jeho funkce bude okamžitě k dispozici všem vašim sešitům. Pokud vytvoříte proceduru VBA, která závisí na vlastní funkci obsažené v jiném sešitu, tento jiný sešit by musel být otevřený, kdykoli byste chtěli použít její funkci. Totéž platí pro vlastní funkci v doplňku. Pokud je doplněk načten, je to v pořádku, ale předpokládáme, že pošlete svůj sešit někomu jinému nebo jej distribuujete do své pracovní skupiny. Musíte také distribuovat doplněk. Může být jednodušší zahrnout kopii funkce do kódu sešitu, aby k ní měly vaše procedury přímý přístup (možná budete muset vytvořit Soukromá funkce nebo změňte jeho název, aby nedocházelo ke konfliktům pojmenování).
Neříkám, nedělej to. Musíte se nad tím nejprve zamyslet a pokud jste si jisti, že doplněk bude k dispozici, pak pokračujte. Zde je návod, jak…
Kdy nastává problém?
Píšu postup pro jeden ze svých pracovních sešitů. Ve svém postupu chci použít RemoveSpaces funkce, kterou jsem před chvílí vytvořil a uložil do své Martinovy funkce Doplněk, který je aktuálně nainstalován v mé kopii aplikace Excel. Ale když se pokusím spustit svůj postup, zobrazí se chyba.
Editor jazyka se chová, jako by funkce neexistovala, ale vím, že ano, a vidím to, když se podívám na kód uvnitř mého doplňku. Ve skutečnosti kód funguje dobře, pokud jej spustím zevnitř mého doplňku.
K tomu potřebuji editor jazyka Visual Basic vidět funkce v mém doplňku z modulu kódu a odlišný pracovní sešit.
Dejte svému doplňku název projektu VBA
Každý sešit má příponu Název projektu VBA. Jmenuje se to VBAProject. Pokud chcete, můžete toto jméno změnit, ale normálně se tím netrápím, protože normálně na tom nezáleží.
Přemýšleli jste někdy nad tím, proč všechny sešity zobrazené v souboru Průzkumník projektů podokno editoru Visual Basic se nazývá "VBAProject"? Pokud máte nainstalovaný některý z doplňků společnosti Microsoft, uvidíte, že mají jiný název. Vývojáři společnosti Microsoft uvedli své Analysis ToolPak Doplněk Název projektu VBA "funcres".
První věc, kterou musíte udělat, je dát vašemu doplňku jedinečný název projektu VBA. Důvodem je, že se na něj budete v dalším kroku odvolávat tímto názvem a pokud existuje více než jeden se stejným názvem, editor jazyka Visual Basic nebude vědět, který použít.
V Průzkumník projektů v podokně vyberte název doplňku. Pokud ještě není otevřený, zobrazte editor jazyka Okno vlastností. Uvidíte, že existuje pouze jedna vlastnost název. Zadejte jiné jméno a stiskněte Vstupte. Budete muset dodržovat obvyklá pravidla pojmenování pro VBA (tj. Žádné nezákonné znaky a žádné mezery). Uvidíte, že název se okamžitě použije v souboru Průzkumník projektů.
Nyní uložte změny do svého doplňku. Ujistěte se, že je váš doplněk vybrán v Průzkumník projektů a vyberte si Soubor> Uložit.
Nastavte odkaz na doplněk
V tomto kroku sešitu, ve kterém chcete používat funkce doplňku, sdělíte, že doplněk existuje. Uděláte to podle Nastavení reference do doplňku. Možná jste se s touto technikou již setkali, pokud jste chtěli napsat kód aplikace Excel pro komunikaci s jiným programem, jako je Výhled nebo Přístup.
Pokud je to vhodné, restartujte v tomto okamžiku aplikaci Excel. Důvodem je, že váš přejmenovaný doplněk bude znovu načten a seznam, který se chystáte vidět, bude aktualizován. Pokud to není pohodlné, neobtěžujte se … přečtěte si následující odstavec a rozhodněte se, co chcete dělat.
V sešitu otevřete modul kódu, ve kterém chcete používat funkce doplňku, a poté přejděte na Nástroje> Reference otevřít Reference dialog, ve kterém uvidíte seznam všech knihoven a dalších objektů (například doplňků), na které můžete nastavit odkaz. Pokud jste restartovali aplikaci Excel, tento seznam bude obnoven a budete moci najít název projektu, který jste přidali doplňku v posledním kroku. Zaškrtněte políčko vedle jména a klikněte na OK knoflík.
Pokud jste nerestartovali Excel, budete muset najít svůj doplněk kliknutím na Procházet tlačítko na Reference dialog. Tím se otevře Přidat odkaz okno. Změň Soubory typu: sekce do Soubory Microsoft Excel (*. Xls;*. Xla) poté přejděte do složky, kde je doplněk uložen.
Vyberte svůj doplněk a klikněte Otevřeno. Tím přidáte svůj doplněk do seznamu, kde jej můžete vybrat a kliknout OK.
POZNÁMKA: Oba tyto postupy nemusíte provádět! Vyberte jednu nebo druhou podle toho, zda jste restartovali Excel po změně názvu projektu VBA vašeho doplňku.
Nyní budete moci používat funkce doplňku v jakémkoli modulu v sešitu, ve kterém nastavíte referenci, a budou rozpoznány editorem jazyka…
Pokud se podíváte na Průzkumník projektů uvidíte, že na sešit byl použit odkaz …
Je důležité si uvědomit, že přidání odkazu se týká pouze sešitu, pro který jste tento postup provedli. Budete to muset udělat pro každý jiný sešit, ve kterém chcete používat funkce vašeho doplňku.
O distribuci vašich souborů
Když přidáte odkaz na doplněk, tento odkaz na doplněk bude do souboru „napevno připojen“. Pokud soubor přesunete na jiný počítač nebo jej rozešlete svým spolupracovníkům, sešit bude očekávat, že na svých počítačích najde stejný doplněk na stejném místě. Pokud je doplněk přesunut nebo odstraněn z počítače, sešit jej nebude moci najít a váš kód nebude fungovat.
Někteří lidé zastávají názor, že soubor a jeho doplněk by měl být vždy umístěn ve stejné složce, aby se předešlo problémům, které by to mohlo způsobit. K vyřešení problému můžete samozřejmě znovu nastavit referenci.
Vezměte tyto faktory v úvahu a nebudete mít problémy.