Start > Kursy on-line > Excel - makra i VBA

Excel - makra i VBA


Lokalizacja kodu

Pod pojęciem lokalizacji kodu rozumiemy miejsce, w którym umieszczamy kod wraz z konsekwencjami, jakie to za sobą niesie. I tak:

  • jeśli kod umieścimy w skoroszycie makr osobistych (wspomnieliśmy o nim podczas omawiania zapisywania) - klikając dwukrotnie w pokazany obiekt, wyświetlimy kod w oknie z prawej strony (na naszym obrazie jest ono białe):



    wówczas zapisany kod będzie dostępny w każdym pliku (skoroszycie) programu Excel. Innymi słowy możemy go uruchomić z dowolnego miejsca programu Excel na danym komputerze. Trzeba jednak zadbać o odpowiednią "uniwersalność" takich poleceń
  • w przypadku, kiedy kod zostanie umieszczony w arkuszu:



    wtedy, kod będzie dostępny w ramach danego pliku Excel. Dodatkowo domyślnie odwołania i polecenia dotyczą arkusza, w którym są zapisane - wykorzystanie ich dla innego arkusza wymaga jawnej deklaracji. O szczegółach odwołań powiemy sobie za chwilę.
  • kod umieszczony w arkuszu ThisWorkbook:



    pozwoli nam na definiowanie zdarzeń/poleceń, które mają być np. uruchamiane podczas włączania danego skoroszytu - dzięki użyciu procedury: "Workbook_open()" - przykład podamy także za chwilę, w rozdziale omawiającym procedury.
  • kod może być też umieszczony w module:



    wówczas jest dostępny w każdym miejscu danego skoroszytu/pliku. O ile nie użyliśmy jawnym odwołań do poszczególnych arkuszy, określona procedura/funkcja będzie wykonywać sekwencje poleceń w odniesieniu do bieżącego arkusza.
  • pomijając klasy, kod może być umieszczony jeszcze w formularzach UserForm, o których też sobie jeszcze powiemy. Wówczas dostęp do tego kodu możliwy jest po użyciu polecenia View Code, wyświetlanego po kliknięcia w obiekt prawym klawiszem myszy:



    W tym przypadku także możliwe są oczywiście odwołania do arkuszy (jawnie zdefiniowane), natomiast co do zasady umieszcza się tam procedury, które określają polecenia w reakcji na użycie formantów umieszczonych na danym formularzu. Czyli jeśli np. formularz UserForm będzie zawierał przycisk, to kod, który ma być wykonany po jego naciśnięciu będzie umieszczony właśnie tu.



W tym momencie niektóre sformułowania użyte w tym rozdziale są jeszcze dla czytelnika niejasne - jednak podczas definiowania procedur w dalszych rozdziałach, będziemy robić to we wszystkich spośród wyżej wymienionych lokalizacji - dzięki czemu, mam nadzieję będzie można rozwiać swoje ewentualne wątpliwości co do zasięgu kodu oraz konieczności zdefiniowania jawnie (lub nie) odwołań do arkusza, obszaru, komórki.