Visual Basic for Applications Excel 1 Tomasz Kaczmarek
Visual Basic for Applications (Excel) -1 Tomasz Kaczmarek
Plan • • • Języki, programy, wykonanie programów Tworzenie makr Nagrywanie makra Edytor kodu Uruchomienie makra Moduły, procedury Przypisania makra do przycisku na formularzu Budowa procedury Wykorzystanie funkcji Msg. Box Wykorzystanie Range – odczyt i zapis wartości z arkusza Podstawowe deklarowanie zmiennych – instrukcja Dim Różnica funkcja – procedura , stworzenie i wykorzystanie prostej funkcji
Języki, programy, wykonanie programów (1) • . . . prapoczątki programowania: – ustawianie przełączników – karty dziurkowane : -) • Rozkazy binarne, języki maszynowe – procesor działa na bitach – instrukcje i dane, które składają się na program – w postaci bitowej – język, w którym rozkazy są zakodowane w postaci zrozumiałej dla procesora to język maszynowy (bitowy) – liczne możliwe błędy, niewygodne i czasochłonne programowanie – kompilator zbędny! • Języki mnemoniczne – assemblery – zamiast 00100111 -> ADD x – wprowadzenie skrótów mnemonicznych, które odpowiadały zazwyczaj 1 lub max. kilku rozkazom dla procesora – assemblery operują nadal instrukcjami procesora – potrzebny kompilator -> program tłumaczący skróty na kod binarny
Języki, programy, wykonanie programów (2) • Języki proceduralne (języki wysokiego poziomu) – przejście od języków operujących rozkazami procesora do języków opartych na abstrakcyjnych instrukcjach typu: wykonaj pętlę, sprawdź warunek – przykłady: PASCAL, C – program złożony z wielu procedur wywoływanych w kolejności – procedura to logicznie wydzielony ciąg instrukcji (zazwyczaj ze względu na spełniane zadanie) – potrzebny kompilator -> jego rola rośnie gdyż pojedyncza instrukcja języka proceduralnego tłumaczy się zazwyczaj na kilka / kilkadziesiąt instrukcji maszynowych • Języki obiektowe (języki wysokiego poziomu) – kolejny etap rozwoju języków programowania – wprowadzony aby ułatwić programowanie dużych i złożonych systemów – program to zbiór obiektów wchodzących w interakcje – obiekt składa się z atrybutów (zmienne) i metod które rządzą jego zachowaniem (procedury)
Języki, programy, wykonanie programów (3) • Kompilator a interpreter – kompilator -> produkuje kod wykonywalny (na procesorze) – interpreter -> pobiera pojedyncze instrukcje z kodu programu i w locie zamienia na kod maszynowy i wykonuje – przy interpretacji nie powstaje kod wykonywalny (brak exe) – program interpretowany jest często mniej wydajny • nie można zoptymalizować tłumaczenia na kod wykonywalny • dodatkowy narzut na tłumaczenie (często wielokrotne) tych poleceń • VBA - 4 GL (język 4 generacji – obiektowo-proceduralny, skryptowy, interpretowany) • Języki interpretowane nazywa się często skryptowymi
Plan • • • Języki, programy, wykonanie programów Tworzenie makr Nagrywanie makra Edytor kodu Uruchomienie makra Moduły, procedury Przypisania makra do przycisku na formularzu Budowa procedury Wykorzystanie funkcji Msg. Box Wykorzystanie Range – odczyt i zapis wartości z arkusza Podstawowe deklarowanie zmiennych – instrukcja Dim Różnica funkcja – procedura , stworzenie i wykorzystanie prostej funkcji
Tworzenie makr • Co to jest makro? – krótki program uruchamiany na życzenie użytkownika lub w odpowiedzi na zdarzenie, które wystąpiło w Excelu • Możliwości makr: – wykonywanie wszystkich operacji na danych i arkuszach które można wykonać przy pomocy menu / przycisków / klawiatury –. . . dużo więcej • • wykonywanie instrukcji wielokrotnie (w pętli) sprawdzanie warunków logicznych reagowanie na zdarzenia. . .
Plan • • • Języki, programy, wykonanie programów Tworzenie makr Nagrywanie makra Edytor kodu Uruchomienie makra Moduły, procedury Przypisania makra do przycisku na formularzu Budowa procedury Wykorzystanie funkcji Msg. Box Wykorzystanie Range – odczyt i zapis wartości z arkusza Podstawowe deklarowanie zmiennych – instrukcja Dim Różnica funkcja – procedura , stworzenie i wykorzystanie prostej funkcji
Nagrywanie makra Stop Edytor VBA
Plan • • • Języki, programy, wykonanie programów Tworzenie makr Nagrywanie makra Edytor kodu Moduły, procedury Uruchomienie makra Przypisania makra do przycisku na formularzu Budowa procedury Wykorzystanie funkcji Msg. Box Wykorzystanie Range – odczyt i zapis wartości z arkusza Podstawowe deklarowanie zmiennych – instrukcja Dim Różnica funkcja – procedura , stworzenie i wykorzystanie prostej funkcji
Edytor kodu Przyciski: uruchamiania makra, pauzy i zatrzymania wykonania kodu Arkusze i załadowane pliki z dodatkami do Excela Moduły – logicznie wydzielone zbioru procedur i funkcji (makr) Pasek na którym można umieszczać punkty przerwania (break points) Kod procedury Na zielono komentarze (ignorowane – zawsze zaczynają się od ‘
Plan • • • Języki, programy, wykonanie programów Tworzenie makr Nagrywanie makra Edytor kodu Moduły, procedury Uruchomienie makra Przypisania makra do przycisku na formularzu Budowa procedury Wykorzystanie funkcji Msg. Box Wykorzystanie Range – odczyt i zapis wartości z arkusza Podstawowe deklarowanie zmiennych – instrukcja Dim Różnica funkcja – procedura , stworzenie i wykorzystanie prostej funkcji
Uruchomienie makra
Plan • • • Języki, programy, wykonanie programów Tworzenie makr Nagrywanie makra Edytor kodu Moduły, procedury Uruchomienie makra Przypisania makra do przycisku na formularzu Budowa procedury Wykorzystanie funkcji Msg. Box Wykorzystanie Range – odczyt i zapis wartości z arkusza Podstawowe deklarowanie zmiennych – instrukcja Dim Różnica funkcja – procedura , stworzenie i wykorzystanie prostej funkcji
Przypisanie makra do przycisku 1. Pokarz pasek Formularze 2. Wybierz Przycisk i narysuj go na arkuszu 3. Przypisz makro 4. Zamknij okno 5. Uruchom makro klikając na przycisk
Plan • • • Języki, programy, wykonanie programów Tworzenie makr Nagrywanie makra Edytor kodu Moduły, procedury Uruchomienie makra Przypisania makra do przycisku na formularzu Budowa procedury Wykorzystanie funkcji Msg. Box Wykorzystanie Range – odczyt i zapis wartości z arkusza Podstawowe deklarowanie zmiennych – instrukcja Dim Różnica funkcja – procedura , stworzenie i wykorzystanie prostej funkcji
Początek procedury (nazwa, w nawiasach argumenty)-> Komentarz (pomijany przy interpretacji) -> Użycie funkcji (podpowiedź składni funkcji na żółto)-> Koniec procedury (i jednocześnie makra) -> Nazwa funkcji Pierwszy argument – to co się wyświetli w okienku, podajemy jako tekst w cudzysłowiu Drugi argument (nieobowiązkowy – można to poznać po nawiasach [ ] – określa ile i jakich przycisków będzie w okienku Trzeci argument – tytuł okienka (pojawi się w niebieskim pasku) – także podajemy w cudzysłowiu. Dalej pozostałe argumenty Podpowiedź do możliwych wartości dla drugiego atrybutu – pojawia się automatycznie kiedy wpiszemy przecinek (co środowisko uzna za chęć dodania drugiego argumentu. Lista to zbiór stałych (w rzeczywistości numerów odpowiadających pewnym możliwym układom przycisków
Plan • • • Języki, programy, wykonanie programów Tworzenie makr Nagrywanie makra Edytor kodu Moduły, procedury Uruchomienie makra Przypisania makra do przycisku na formularzu Budowa procedury Wykorzystanie funkcji Msg. Box Wykorzystanie Range – odczyt i zapis wartości z arkusza Podstawowe deklarowanie zmiennych – instrukcja Dim Różnica funkcja – procedura , stworzenie i wykorzystanie prostej funkcji
Range, Dim Sub makro 2() Dim text = Range("A 2") Msg. Box (text) End Sub Początek procedury (makra), nazwa makra i puste nawiasy – ta procedura nie pobiera argumentów Zadeklarowanie pojedynczej zmiennej text (zmienna to miejsce w pamięci w którym można przechowywać dane; ma nazwę i typ danych które można przechowywać Przypisanie przy pomocy funkcji Range wartości do zmiennej text. Range pobiera lub zapisuje wartość w podanej komórce (lub zakresie) Wyświetlenie okienka z tekstem pobranym ze zmiennej text Koniec procedury
Plan • • • Języki, programy, wykonanie programów Tworzenie makr Nagrywanie makra Edytor kodu Moduły, procedury Uruchomienie makra Przypisania makra do przycisku na formularzu Budowa procedury Wykorzystanie funkcji Msg. Box Wykorzystanie Range – odczyt i zapis wartości z arkusza Podstawowe deklarowanie zmiennych – instrukcja Dim Różnica funkcja – procedura , stworzenie i wykorzystanie prostej funkcji
Funkcja a procedura • Procedura – ciąg instrukcji do wykonania, zazwyczaj spełnia określone zadanie ale nie daje wyniku • Funkcja – również ciąg instrukcji ale zwraca wynik. Często analogiczna do funkcji matematycznych: f(x) = y – funkcja od argumentów ma pewną wartość Sub makro 3() Dim a, b ‘zadeklarowane dwie zmienne a = Range("H 2") ‘do zmiennej a wczytujemy zawartość ‘komórki H 2 b = Range("H 3") ‘podobnie z b – H 3 Range("H 4") = Moja. Suma(a, b) ‘wywołujemy funkcję Moja. Suma (poniżej) ‘wartości a i b zostają podstawione do ‘x i y ‘rezultat funkcji jest zapisany w komórce H 4 End Sub Function Moja. Suma(x, y) ‘prosta funkcja dodająca o dwóch argumentach Dim wynik = x + y ‘dodawanie; w zmiennej wynik znajduje się rezultat Moja. Suma = wynik ‘w ten sposób zwraca się wartość funkcji ‘przypisując ją do nazwy funkcji End Function
- Slides: 21