Drukuj

ZAAWANSOWANE VBA

 

  • Formularze
  • Właściwości, metody, zdarzenia
  • Obsługa błędów
  • Niektóre zdarzenia formantów
  • Zdarzenia skoroszytu/arkusza
  • Funkcja
  • Procedura
  • Podprogram




  • FORMULARZE

    1.Formularz - okno lub okno dialogowe. Możemy powiedzieć że formularze są kontenerami dla formantów. Formularz jest obiektem, oznacza to że posiada on właściwości, metody i reaguje na zdarzenia. W edytorze VBA formularz nosi nazwę UserForm.

    2.Formant - obiekt, który można umieścić na formularzu, posiadający własny zestaw rozpoznawalnych właściwości, metod i zdarzeń. Formantów można używać do pobierania i wyświetlania danych oraz wyzwalania procedur obsługi zdarzeń. Większością formantów można operować używając metod. Niektóre formanty są interaktywne (reagują na akcje użytkownika), podczas gdy inne są statyczne (dostępne tylko poprzez kod programu).



    Powrót do menu

     

    WŁAŚCIWOŚCI, METODY, ZDARZENIA - podczas tworzenia programów w języku VBA często korzystamy z obiektów. Elementy aplikacji, takie jak np. skoroszyt, wykres, formularz, komórka czy zakres komórek są właśnie obiektami. Obiekt posiada właściwości (properties), metody (methods) i zdarzenia (events).

    1.Właściwość - opatrzony nazwą atrybut obiektu. Właściwości definiują takie cechy obiektu jak rozmiar, kolor i położenie na ekranie a także stan obiektu na przykład to czy jest on aktywny czy nieaktywny.

    2.Metoda - procedura podobna do instrukcji lub funkcji, operująca na konkretnych obiektach.

    3.Zdarzenie - akcja rozpoznawana przez obiekt (taka jak kliknięcie myszą czy naciśnięcie klawisza), dla której można zdefiniować odpowiedź. Zdarzenie może być spowodowane działaniem użytkownika, poleceniem języka Visual Basic lub działaniami systemu. Korzystając z właściwości skojarzonych ze zdarzeniami można ustalić, aby odpowiedzią na zdarzenie było uruchomienie makra, wywołanie funkcji języka Visual Basic lub uruchomienie procedury zdarzenia.



    Powrót do menu

     

    OBSŁUGA BŁĘDÓW

    Podczas programowania aplikacji trzeba rozważyć, co ma się stać, gdy wystąpi błąd. Błąd może wystąpić w aplikacji z dwóch powodów:

    1.Po pierwsze, w pewnych warunkach, podczas wykonywania aplikacji zawodzi kod, który w innych warunkach jest prawidłowy.

    2.Po drugie, kod może zawierać błędy logiczne, które sprawiają, że wyniki jego działania są inne od oczekiwanych.

    W VBA podobnie jak w innych językach możemy przechwytywać nietypowe zdarzenia w postaci błędów. Aby „dobrać się” do tych błędów (Errors) należy posłużyć się funkcją CVErr, która zwraca wartość błędu na podstawie jego numeru i tak wyróżnia się błędy:

    •xlErrDiv0

    •xlErrNA

    •xlErrName

    •xlErrNull

    •xlErrRef

    •xlErrNum

    •xlErrValue



    Powrót do menu


    NIEKTÓRE ZDARZENIA FORMANTÓW

    Click Jest to chyba najczęściej spotykane zdarzenie. Dla formantu zdarzenie to występuje, gdy na formancie zostanie naciśnięty, a następnie zwolniony (kliknięty) lewy przycisk myszy.

    DblClick Zachodzi kiedy użytkownik dwukrotnie klika formant.

    MouseMove Występuje za każdym razem gdy wskaźnik myszy przesuwa się po formancie.

    MouseDown Zachodzi gdy użytkownik naciska przycisk myszy. Zdarzenia tego możemy użyć jeżeli chcemy rozróżnić który przycisk myszy jest używany.

    MouseUp Zachodzi gdy użytkownik zwalnia przycisk myszy. Zdarzenia tego możemy użyć jeżeli chcemy rozróżnić który przycisk myszy jest używany.

    Change Występuje kiedy zmienia się właściwość Value formantu

    KeyDown Zachodzi gdy użytkownik naciska klawisz w czasie gdy formant ma fokus.

    KeyUp Zachodzi gdy użytkownik zwalnia klawisz w czasie gdy formant ma fokus.

    KeyPress Występuje gdy użytkownik naciska i zwalnia klawisz lub kombinacje klawiszy w czasie gdy formant ma fokus.



    Powrót do menu

     

    ZDARZENIA SKOROSZYTU/ARKUSZA

    W kodzie VBA możemy zaprogramować działanie makra aktywowanego określonymi zdarzeniami skoroszytu lub arkusza. Każdy z arkuszy lub skoroszyt ma swój własny moduł - i każdy trzeba oprogramować osobno.

    W zależności od pożądanego efektu jaki chcemy osiągnąć, możemy wybrać jedno z następujących zdarzeń:

    1.Activate - aktywacja

    2.BeforeDoubleClick - po dwukrotnym kliknięciu

    3.BeforeRightClick - po kliknięciu prawym przyciskiem myszy

    4.Calculate - po przeliczeniu

    5.Change - po zmianie

    6.Deactivate - po deaktywacji

    7.FollowHyperlink - po wybraniu łącza

    8.PrivotTableUpdate - po odświeżeniu tabeli przestawnej

    9.SelectionChange - zmiana zaznaczenia



    Powrót do menu

     

    FUNKCJA

    FUNKCJA to procedura deklarowana za pomocą słowa kluczowego Function, natomiast instrukcja End Function kończy procedurę. Funkcja może pobierać argumenty które są do niej przekazywane np. przez procedurę wywołującą. Procedura Function jest podobna do procedury Sub, jednak w przeciwieństwie do podprogramu zwraca wartość np. do procedury która ją wywołała.



    Powrót do menu

     

    PROCEDURA

    PROCEDURA - jest to najmniejsza część kodu która posiada własną nazwę, jest to też najmniejsza część kodu którą można uruchomić niezależnie od innych części kodu. Procedura jest bardzo ważną częścią programu ponieważ, aby kod mógł działać należy umieścić go w procedurze. Procedura składa się z instrukcji deklarującej procedurę, linii kodu wykonywanych wewnątrz procedury oraz instrukcji zamykającej.



    Powrót do menu

     

    PODPROGRAM

    PODPROGRAM - jest to podstawowy typ procedur języka VBA. Podprogram deklarujemy za pomocą słowa kluczowego Sub nazwa_podprogramu(), instrukcja End Sub zamyka podprogram. Instrukcja deklarująca procedurę kończy się parą nawiasów - można w niej umieszczać parametry podprogramu. Jest to typ procedury, który można uruchomić niezależnie od innych procedur. Procedury tego typu wykonują akcje, lecz nie zwracają wartości. Podprogram może wywołać inną procedurę.



    Powrót do menu