Kategorie powiązane:

Tworzenie pliku dodatku (add-in), dodatki do Excela

HintMine

Witam, ponownie :)

 

Znalazłem chwilę czasu, więc opiszę wspomniane przy okazji innego artykułu pliki dodatków.
W tym wpisie dowiecie się:

  • co to jest add-in (czyli po naszemu dodatek) w Excelu?
  • czy warto używać dodatków programu Excel?
  • jak stworzyć własny dodatek?

 

Najprościej rzecz ujmując add-in to plik Excela (tak po prostu ;) No to co w nim takiego super? Ano to, że może się on uruchamiać w tle z każdym otwartym przez nas plikiem Excela, dzięki czemu będziemy mieli zawsze dostępne wszystkie zapisane w tym dodatku makra (zarówno procedury jak i funkcje, chociaż z funkcjami jest nieco łatwiej…).

 

No dobra, ale przecież już jest takie narzędzie/taki plik nazywa się skoroszyt makr osobistych czyli Personal.xlsb no to dlaczego nie używać Personala tylko jakiegoś dodatku ? Hmm odpowiem pytaniem na pytanie a jak wyłączyć plik skoroszyt makr osobistych ? No właśnie…

 

Po pierwsze Personala nie da się wyłączyć.

 

Znaczy możemy się go pozbyć ale jedynie przez skasowanie (lub przeniesienie w inne miejsce) a ścieżka do personala jest długa i zawiła:

 

C:\Users\tutaj_wasza_nazwa_użytkownika\AppData\Roaming\Microsoft\Excel\XLSTART\Personal.xlsb

 

W większości korpokompów nie będziemy w stanie tam wejść bo AppData jest katalogiem ukrytym i pewnie nie będziemy mogli go „odkryć”.

 

Po drugie Personalem nie bardzo jesteśmy się w stanie podzielić z bliźnim.

 

Jeżeli ktoś chciałby skorzystać z naszego personala, musiałby wgrać go do tej zawiłej lokalizacji i oczywiście jak miał tam wcześniej swój skoroszyt makr osobistych to… no właśnie… nie można mieć 2 plików Personal.xlsb jak w takim razie fajnie podzielić sobie narzędzia i dołączać i odłączać je do Excela w razie potrzeby ?

 

Tu właśnie z pomocą przychodzi nam plik dodatku. Poniżej jego zalet, czyli znów punkty :)

  • Możemy mieć wiele plików dodatków
  • Dodatki możemy łatwo włączać i wyłączać
  • Możemy umieścić dodatek na dysku sieciowym i dzięki temu każdy kto ma do niego dostęp będzie mógł korzystać ze stworzonych w nim przez nas programów (głównie funkcji ale z procedur też, z tym że wtedy warto dorobić dodatkowi pasek z przyciskami, które te procedury będą uruchamiać)
  • Jak w takim umieszczonym na dysku sieciowym dodatku zrobimy jakąkolwiek zmianę kodu, to wszystkie osoby, które mają go dołączonego, po uruchomieniu Excela będą miały zawsze aktualny kod wszystkich naszych makr (żeby to uzyskać trzeba odpowiednio dodać plik dodatku, o czym napiszę poniżej).

 

Brzmi ciekawie ? Ok to teraz kilka słów na temat tego jak takie cudo stworzyć :)

 

W sumie, wystarczy w pliku Excela napisać kilka funkcji oraz procedur, z których często korzystamy a następnie zapisać ten plik z odpowiednim rozszerzeniem (czyli jako odpowiedni typ) i voila :)

 

No to teraz może trochę bardziej szczegółowo:

 

Odnośnie tworzenia procedur i funkcji VBA, to zakładam że każdy coś potrafi jak nie napisać to chociaż nagrać. Jak znajdę chwilę, to w kolejnym temacie dopiszę kilka zadań na temat jak tworzyć funkcje. Na razie zakładam, że mamy plik Excela z przynajmniej jedną funkcją np. taką jak poniżej, która zwraca numer kwartału z podanej daty (w Excelu z tego co wiem nie ma takiego zaklęcia ;)

 

No i do tego dorzućmy sobie jeszcze procedurę, która np. wkleja nam wartości (żeby nie trzeba było w chodzić we wklejàspecjalnieàWartości)

 

Ok, mamy kod :) No to jedziemy dalej. Trzeba teraz zapisać nasz pliczek. Jak często pokazuję uczestnikom na szkoleniach możemy zapisać plik Excela na wiele różnych sposobów, np. pliki które zawierają kod makra VBA zapisujemy z rozszerzeniami .xlsm, xlsb lub (coraz rzadziej .xls). Jak ktoś nie widzi w swoim Windowsie rozszerzeń plików, polecam je włączyć ;) a jak nie możecie (bo korpokomp i nie mamy uprawnień), to na poniższym screenie pokazuję wszystkie opcje (dla Excela 2010 :)

 

Żeby stworzyć plik dodatku trzeba zapisać go jako Dodatek programu Excel (czyli rozszerzenie .xlam) lub dla Offica w wersji starszej niż 2007 Dodatek programu Excel 97-2003 (.xla). Ważna rzecz, jak wybierzemy typ pliku jako wspomniany Dodatek programu Excel, to automatycznie zostaniemy przeniesieni do folderu:

 

C:\Users\tutaj wasza nazwa użytkownika\AppData\Roaming\Microsoft\Dodatki

 

Ta lokalizacja jest znów mocno odległa, ukryta, tajna itd. A jeżeli chcemy podzielić się tym plikiem ze wspomnianym bliźnim, to warto by było zapisać sobie go gdzieś bliżej (np. na pulpicie ;). Dlatego pamiętajcie, najpierw zmieniamy typ pliku a dopiero potem wyklikujemy sobie gdzie chcemy go zapisać.

 

Ale ale :) zanim zapiszemy nasz plik dodatku możemy go jeszcze trochę stuningować (nie jest to obowiązkowe ale… moim zdaniem warto). Chodzi o:

  • dodanie skrótów klawiszowych do procedur które mamy zapisane w dodatku (np. do naszego wklejania specjalnie wartości)
  • stworzenie własnej nazwy którą będzie widać w oknie „dodatki”
  • zabezpieczenie kodu VBA

 

Jeżeli chodzi o dodawanie skrótów, to jak zawsze jest kilka sposobów (oczywiście kiedyś na pewno je wszystkie opiszę…) póki co, najprostszy wg. mnie czyli zakładka Developer–>Makra (lub alt+F8)–>Klikamy w nazwę makra, do którego chcemy dodać skrót i z pola po prawej wybieramy opcje. Oczom naszym ukarze się okienko, w którym możemy dodać skrót klawiszowy.

 

! UWAGA !

Standardowo skrót klawiszowy, który dodajemy zaczyna się od CTRL + jakaś litera no i… właśnie to sprawi, że nadpiszemy sobie jakiś inny skrót, który jest już wbudowany w Excela… czyli np. przypisanie litery ”v” sprawi, że naszym skrótem będzie ”CTRL+v” czyli zamiast standardowego wklejenia danych uruchomi się nasze makro… hmm świetny pomysł na zrobienie komuś psikusa… np. podpinamy makro o kodzie:

pod skrót klawiszowy CTRL+C sami sprawdźcie co się stanie ;) No dobra ale jak w takim razie dodać skrót do makra żeby sobie czegoś ważnego nie nadpisać ? Wciskamy literę jednocześnie trzymając Shift… czyli wciskając Shift+V nasze makro dostanie skrót klawiszowy CTRL+Shift+V Tak wiem, że w Excelu też jest pełno skrótów o kombinacji CTRL+Shift+litera ale na pewno jest tego mniej niż zwykłych CTRL+litera (lub rzadziej się ich po prostu używa).

 

Po dodaniu skrótu do naszego makra zapisujemy plik (CTRL+s ;)

 

Przechodzimy teraz do edycji nazwy naszego dodatku, którą użytkownik zobaczy w oknie dodatki. Robi się to w panelu dokumentu. Excele 2010,2013 i 2016 mają bezpośredni dostęp do tego panelu z zakładki Developer

 

Po kliknięciu w nią pojawi się okno panel informacji o dokumencie à klikamy na tym oknie OK i wreszcie zobaczymy nasz panel (Excele 2007 mogą się tam dostać poprzez przycisk Offica–>Przygotuj–>Właściwości):

 

W polu tytuł wpisujemy nazwę jaką użytkownicy zobaczą później w oknie dodatków np. „dąbek tools”(możemy tutaj używać polskich znaków i spacji :) To tyle jeżeli chodzi o właściwości dokumentu.

 

Teraz zabezpieczenie kodu makra. Tutaj znów odwołam się do informacji z mojego szkolenia tzn. standardowe zabezpieczenie kodu makra poprzez właściwości VBAProject jest… delikatnie mówiąc mało bezpieczne ;) Ale ok, niech będzie tak pro forma opiszę jak to zrobić a jak znajdę chwilę to opiszę w jakimś kolejnym artykule jak takie zabezpieczenie obejść (oczywiście w sytuacji gdy „zapomnieliśmy” hasła ;)

 

sposób standardowy:

  • wchodzimy do edytora VBA
  • klikamy w niego prawym klawiszem myszy i wybieramy VBAProject properties
  • następnie wchodzimy w kartę Protection
  • zaznaczamy „ptaszka” przy Lock project for viewing
  • w polach password i confirm password wpisujemy nasze hasło :)

 

sposób mój (wydaje mi się bardziej bezpieczny/trudniejszy do złamania)

  • wszystko robimy z poziomu Excela
  • w Excelu wchodzimy w Recenzja
  • chroń i udostępnij skoroszyt
  • zaznaczamy „ptaszka” w Udostępnianie ze śledzeniem zmian
  • wpisujemy hasło i klikamy OK
  • w kolejnym oknie ponownie wprowadzamy hasło i klikamy OK
  • plik będzie się chciał zapisać (zapisujemy go więc)

 

Jak teraz ktokolwiek będzie chciał wejść w nasz kod VBA, to po kliknięciu w VBAProject zobaczy takie fajne okienko:

 

Na takie zabezpieczenie większość znanych mi sposobów na łamanie haseł (dla projektu VBA) nie działa :) bo… sam w sobie projekt VBA nie jest zahasłowany :)

 

Jak już zrobimy to wszystko, możemy wreszcie kliknąć plikàzapisz jako albo zamiast klikania nacisnąć klawisz F12 (uzyskamy ten sam efekt ale… szybciej ;)

 

Wpisujemy w oknie jakąś nazwę

 

No dobra mamy ten dodatek i co teraz ?

 

Teraz trzeba go dodać :) do naszego Excela.

 

Posiadacze Excela 2010, 2013 i 2016 wchodzą w zakładkę Developer–>Dodatki i w okienku, które się pojawi klikają w przeglądaj żeby zlokalizować plik z dodatkiem. Jeżeli plik ten jest gdzieś w lokalizacji sieciowej i chcecie żeby ”zaczytywała się” zawsze ta aktualna wersja dodatku z dysku sieciowego, to bardzo ważne jest żeby po znalezieniu dodatku w komunikacie który się pojawi ”Czy skopiować plik do lokalnego magazynu” wybrać NIE. Jeżeli wybierzecie domyślnie podświetlone tak, to niestety plik dodatku skopiuje się wam na wasz lokalny komputer i nawet jak ktoś wprowadzi zmiany w programach na tym sieciowym dodatku, to u was się one nie zaktualizują :(

 

Myślę, że to tak z grubsza przybliży wam temat dodatków. Oczywiście jak macie jakieś pytania/sugestie/wskazówki to zapraszam do komentarzy :)

 

Michał Dąbrowski

Powrót do:
Blog VBA | Podstawy VBA |


Zobacz też: