Strony

  • Strona główna
  • Kurs Excel
  • Kurs VBA
  • Moje narzędzia
  • Ciekawe Strony

Zmiany, zmiany, zmiany

Co się dzieje?

W nocy z piątku na sobotę blog będzie niedostępny/ trudno dostępny/rozsypany.

Dlaczego?

W celu zwiększenia satysfakcji czytelników .. bla bla przenoszę blog z platformy Blogger na Wordpress. Da to możliwość dostarczenia wielu nowych ciekawych funkcji. Planów mam w każdym razie całą górę.

Aktualizacja:
Dodawanie komentarzy zostało zablokowane do końca tygodnia.

Kurs VBA - Klasy - Metody


Metody są różnymi działaniami, które może wykonywać modelowana przez naszą klasę
rzecz. Modelując samochód możemy dać mu metody:
  • hamuj
  • przyspieszaj
  • włącz światła
  • wyłącz swiątła
  • otwórz bagażnik
  • itd.
Oczywiście w praktyce nie będziemy modelować samochodu. Bardziej praktyczna klasa może służyć do zapisywania danych do pliku. Metody w takiej klasie mogą wyglądać tak:

Kurs VBA - Klasy - Tworzenie i inicjalizacja


W tej części kursu zobaczymy jak tworzyć i używać klasy. Nie będę się wdawał w szczegóły, które poznacie w kolejnych postach. Chciałbym abyście byli przygotowani do (technicznie) swobodnego tworzenia i używania klas, aby stosować elementy przedstawione później.

Stworzymy klasę, które będzie przechowywać oraz wypisywać do arkusza dane pracownika.


Definicja klasy

Każda klasa mieści się w osobnym module w pliku Excel. Moduł klasy tworzymy podobnie jak zwykłe moduły z kodem. Klikam prawym przyciskiem na dowolnej pozycji w oknie projektu i wybieram Insert / Class Module.

Kurs VBA - Klasy - Wstęp, teoria


Poniższy tekst rozpoczyna kilka rozdziałów na temat programowania obiektowego. Pewnie dało by się to wszystko skrócić i umieścić w jednej części, ale cóż, taka ze mnie gaduła. Pisząc kolejne wiersze zakładam, że czytelnik porusza się względnie swobodnie w programowaniu VBA. Nie istotne czy nabył tą wiedzę przy pomocy niniejszego kursu czy nie.

Nie można programować w VBA bez kontaktu z programowaniem obiektowym, czyli modelem obiektowym Excela. W tej i kolejnych częściach kursu dowiemy się po prostu jak rozszerzać nasz program o nasze własne klasy. Dzięki temu programy mogą stać się bardziej czytelna a ich projektowanie łatwiejsze.

Na temat programowania obiektowego napisano mnóstwo książek, na pewno nie mam zamiaru napisać tutaj kolejnej, tym bardziej, że trudno jest znaleźć język programowania, który by spełniał oczekiwania uczonych głów co do realizacji wszystkich cech programowania obiektowego. Sam nie uważam się za wielkiego specjalistę z tego zakresu. Na szczęście wiedza praktyczna i teoretyczna nie muszą iść w parze. Po poniższe części teoretycznej przejdziemy do różnych przykładów praktycznych.

Z pewnością VBA tylko w drobnym stopniu realizuje wymagania programowania obiektowego, ale wciąż możemy to wykorzystać do swoich celów. Programowanie obiektowe możemy realizować poprzez Abstrakcję i Hermetyzację.

Kurs VBA - cz. 26 - Formularze - Metody


Czas na ostatnią część tryptyku atrybuty-zdarzenia-metody. Każdy obiekt formularza ma przypisany zestaw metod. Na szczęście jest ich tylko kilka (istotnych). Zdecydowanie w pracy z formularzami najważniejsze są atrybuty i zdarzenia.

Metody wywołujemy przez połączenie nazwy obiektu i nazwy metody, jak w przypadku każdego innego obiektu.

Najważniejsze metody

Show (pokaż)

Pokazuje formularz. Wspominana już we wcześniejszych cześciach kursu.

Hide (ukryj)

Ukrywa formularz przed użytkownikiem. Wszystkie kontrolki, razem ze swoimi wartościami dalej "istnieją" i możemy się do nich odnosić w programie.

Używamy tej metody, jeżeli przewidujemy, że użytkownik będzie chciał wrócić do tego ekranu i zobaczyć te same wartości, które były, kiedy go opuszczał. Na przykład możemy mieć pomocniczy formularz z listą adresową, który może być otwierany kilka razy, żeby wybrać adres do głównego formularza. Lista będzie uzupełniana tylko przy pierwszym otwarciu.

SetFocus ("ustaw fokus")

Klikając myszą na pole tekstowe ustawiamy na nim "fokus". Można to też zrobić przy pomocy tej metody. Na przykład zaznaczyć nieprawidłowo wypełnione pole po tym jak użytkownik kliknie "Dalej".

Funkcja Unload

Przy pomocy Hide jedynie chowamy go przed użytkownikiem. Jeżeli chcemy go całkiem usunąć i zwolnić pamieć to używamy instrukcji Unload. Np.

Unload Me

Powyższa funkcja użyta w zdarzeniu na formularzu, zamyka ten formularz.

Kurs VBA - cz. 25 - Formularze - Zdarzenia


W tej części kursu opiszę najważniejsze zdarzenia formularza i jego kontrolek. W zdarzeniach możemy umieścić kod, który uruchomi się automatycznie w odpowiedzi na działanie użytkownika.

Jest to główna metoda programowania formularzy. Ostatecznie taka jest ich filozofia, program wyświetla pewien szablon przed użytkownikiem i czeka na jego reakcję. Użytkownik może zacząć wypełniać pierwsze pole, może zacznie od drugiego, może kliknie od razu ok albo się rozmyśli i zamknie okno. Wszystkie te działania uruchamiają określone zdarzenia.

Kod zdarzeń umieszczamy w pliku kodu formularza. Możemy go włączyć wybierając View Object po kliknięciu prawym przyciskiem na formularzu w drzewku projektu.

Przełączać się pomiędzy widokiem formularza a kodem formularza możemy używając na zmianę F7 i shift + F7 albo wybierając View Code lub View Object w powyższym menu.

Dodawanie zdarzeń