Jak korzystać z funkcji dodatków programu Excel w VBA?

Spisie treści:

Anonim

Jeśli zbudowałeś dodatek zawierający funkcje niestandardowe programu Excel, być może odkryłeś, że chociaż funkcje działają dobrze w arkuszu programu Excel, nie możesz ich używać w procedurach VBA w innych skoroszytach. To tak, jakby Edytor Visual Basic nie mógł zobaczyć im. Cóż, to dlatego, że nie może! W tym artykule wyjaśniono, jak możesz to naprawić.

Przede wszystkim zastanów się, czy naprawdę chcesz to zrobić. Dodatki są przeznaczone głównie do dodawania dodatkowych funkcji do skoroszytów. Po załadowaniu dodatku programu Excel jego funkcjonalność natychmiast staje się dostępna dla wszystkich skoroszytów. Jeśli utworzysz procedurę VBA, która zależy od funkcji niestandardowej zawartej w innym skoroszycie, ten skoroszyt będzie musiał być otwarty za każdym razem, gdy chcesz użyć jego funkcji. To samo dotyczy funkcji niestandardowej w dodatku. Jeśli dodatek jest załadowany, to w porządku, ale przypuśćmy, że wyślesz skoroszyt do kogoś innego lub rozesłasz go do swojej grupy roboczej. Musisz również pamiętać o dystrybucji dodatku. Może być prostsze dołączenie kopii funkcji do kodu skoroszytu, aby procedury miały do ​​niej bezpośredni dostęp (może być konieczne uczynienie tego Funkcja prywatna lub zmień jego nazwę, aby uniknąć konfliktów nazw).

Nie mówię, że nie rób tego. Musisz tylko najpierw o tym pomyśleć, a jeśli masz pewność, że dodatek będzie dostępny, to śmiało. Oto jak…

Kiedy pojawia się problem?

Piszę procedurę do jednego z moich skoroszytów. W mojej procedurze chcę użyć Usuń spacje funkcję, którą jakiś czas temu utworzyłem i zapisałem w moim Funkcje Martina Dodatek, który jest aktualnie zainstalowany w mojej kopii programu Excel. Ale kiedy próbuję uruchomić moją procedurę, pojawia się błąd.

Edytor Visual Basic zachowuje się tak, jakby funkcja nie istniała, ale wiem, że tak jest i widzę to, patrząc na kod w moim dodatku. W rzeczywistości kod działa dobrze, jeśli uruchomię go z wnętrza mojego dodatku.

Potrzebuję Edytora Visual Basic, aby móc zobaczyć funkcje w moim dodatku z wnętrza modułu kodu różne zeszyt ćwiczeń.

Nadaj swojemu dodatkowi nazwę projektu VBA

Każdy skoroszyt ma Nazwa projektu VBA. To jest nazwane Projekt VBA. Możesz zmienić tę nazwę, jeśli chcesz, ale normalnie nie zawracam sobie głowy, ponieważ normalnie to nie ma znaczenia.

Czy kiedykolwiek zastanawiałeś się, dlaczego wszystkie skoroszyty wyświetlane w Eksplorator projektów okienko edytora Visual Basic nosi nazwę „Projekt VBA"? Jeśli masz zainstalowane jakiekolwiek dodatki firmy Microsoft, zobaczysz, że mają one inną nazwę. Twórcy firmy Microsoft podali swoje Pakiet narzędzi analitycznych Dodatek do nazwy projektu VBA ”funcres".

Pierwszą rzeczą do zrobienia jest nadanie dodatkowi unikalnej nazwy projektu VBA. Dzieje się tak, ponieważ w następnym kroku będziesz się do niego odwoływać pod tą nazwą, a jeśli istnieje więcej niż jeden o tej samej nazwie, Edytor Visual Basic nie będzie wiedział, którego użyć.

w Eksplorator projektów okienko wybierz nazwę swojego dodatku. Jeśli nie jest jeszcze otwarty, wyświetl edytora Visual Basic Okno właściwości. Zobaczysz, że istnieje tylko jedna właściwość, Nazwa. Wpisz inną nazwę i naciśnij Wejść. Będziesz musiał przestrzegać zwykłych zasad nazewnictwa dla VBA (tj. Bez niedozwolonych znaków i spacji). Zobaczysz, że nazwa jest natychmiast stosowana w Eksplorator projektów.

Teraz zapisz zmiany w swoim dodatku. Upewnij się, że dodatek jest wybrany w Eksplorator projektów i wybierz Plik > Zapisz.

Ustaw odniesienie do dodatku

W tym kroku poinformujesz skoroszyt, w którym chcesz korzystać z funkcji dodatku, że dodatek istnieje. Robisz to przez Ustawianie odniesienia do dodatku. Być może wcześniej spotkałeś się z tą techniką, jeśli chciałeś napisać kod Excela, aby komunikować się z innym programem, takim jak Perspektywy lub Dostęp.

Jeśli jest to wygodne, uruchom ponownie program Excel w tym momencie. Dzieje się tak, ponieważ dodatek o zmienionej nazwie zostanie ponownie załadowany, a lista, którą zobaczysz, zostanie odświeżona. Jeśli nie jest to wygodne, nie przejmuj się… przeczytaj następny akapit i zdecyduj, co chcesz zrobić.

Otwórz moduł kodu w skoroszycie, w którym chcesz korzystać z funkcji dodatku, a następnie przejdź do Narzędzia > Referencje otworzyć Bibliografia okno dialogowe, w którym zobaczysz listę wszystkich bibliotek i innych obiektów (takich jak dodatki), do których możesz ustawić odniesienie. Jeśli ponownie uruchomiłeś program Excel, ta lista zostanie odświeżona i będziesz mógł znaleźć nazwę projektu, którą nadałeś swojemu dodatkowi w ostatnim kroku. Zaznacz pole obok nazwy i kliknij ok przycisk.

Jeśli nie uruchomiłeś ponownie programu Excel, będziesz musiał znaleźć plik dodatku, klikając przycisk Przeglądaj przycisk na Bibliografia dialog. To otwiera Dodaj odniesienie okno. Zmienić Pliki typu: sekcja do Pliki Microsoft Excel (*.xls;*.xla) następnie przejdź do folderu, w którym przechowywany jest dodatek.

Wybierz swój dodatek i kliknij otwarty. Spowoduje to dodanie twojego dodatku do listy, gdzie możesz go wybrać i kliknąć ok.

UWAGA: Nie musisz wykonywać obu tych procedur! Wybierz jeden lub drugi w zależności od tego, czy program Excel został ponownie uruchomiony po zmianie nazwy projektu VBA dodatku.

Teraz będziesz mógł korzystać z funkcji dodatku w dowolnym module w skoroszycie, w którym ustawisz odwołanie i zostaną one rozpoznane przez Edytor Visual Basic…

Jeśli spojrzysz na Eksplorator projektów zobaczysz, że odniesienie zostało zastosowane do skoroszytu…

Należy pamiętać, że dodanie odwołania dotyczy tylko skoroszytu, dla którego wykonano tę procedurę. Musisz to zrobić dla każdego innego skoroszytu, w którym chcesz korzystać z funkcji dodatku.

O rozpowszechnianiu plików

Po dodaniu odniesienia do dodatku to łącze do dodatku jest „na stałe” wbudowane w plik. Jeśli przeniesiesz plik na inny komputer lub rozesłasz go do współpracowników, skoroszyt będzie oczekiwał znalezienia tego samego dodatku w tym samym miejscu na ich komputerach. Ponadto, jeśli dodatek zostanie przeniesiony lub usunięty z komputera, skoroszyt nie będzie mógł go znaleźć, a Twój kod nie będzie działał.

Niektórzy twierdzą, że plik i powiązany z nim dodatek powinny zawsze znajdować się w tym samym folderze, aby uniknąć problemów, które może to spowodować. Możesz oczywiście ponownie ustawić odniesienie, aby rozwiązać problem.

Weź pod uwagę te czynniki, a nie będziesz miał problemów.