Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Kurs VBA, cz.I & II Tomasz Miklewicz Mateusz Piękoś Na podstawie: A. Snarska, Makropolecenia w Excelu.

Podobne prezentacje


Prezentacja na temat: "Kurs VBA, cz.I & II Tomasz Miklewicz Mateusz Piękoś Na podstawie: A. Snarska, Makropolecenia w Excelu."— Zapis prezentacji:

1 Kurs VBA, cz.I & II Tomasz Miklewicz Mateusz Piękoś Na podstawie: A. Snarska, Makropolecenia w Excelu

2 Agenda 1.Wstęp 2.Środowisko makr 3.Zmienne i ich typy 4.Komunikacja z użytkownikiem 5.Zmienne obiektowe Excela

3 1. Wstęp Sprawy organizacyjne VBA – do czego się przydaje? Przykłady zastosowań w pracy

4 2. Środowisko makr 2.1 Dostosowanie Excela 2.2 Nagrywanie makr 2.3 Edycja makr

5 2.1 Dostosowanie Excela Przycisk pakietu Office ->Opcje->Popularne->Pokaż kartę Deweloper na wstążce Deweloper->Bezpieczeństwo makr->Włącz wszystkie makra Zapisuj pliki z rozszerzeniem.xlsm, używanie innych formatów może spowodować utratę kodu

6 2.2 Nagrywanie makr Aby rozpocząć: Deweloper->Zarejestruj makro Aby zakończyć: Deweloper->Zatrzymaj rejestrowanie Odwołania względne/bezwględne – określają, czy makro wykonuje czynność na obszarze określonym względem aktualnej selekcji (względne) czy zawsze na tym samym obszarze (bezwględne) Aby usunąć niepotrzebne makro wybierz Deweloper->Makra->Usuń

7 2.2 Nagrywanie makr Aby uruchomić nagrane makro z poziomu arkusza: Deweloper->Makra->Uruchom Istnieje możliwość przypisania makru skrótu klawiszowy na etapie jego tworzenia lub później wybierając Makra->Opcje->Klawisz skrótu (uwaga: lepiej nie przypisywać popularnych skrótów jak Ctrl+C, Ctrl+V etc.) Alternatywnie można umieścić w arkuszu przycisk wybierając Dweloper- >Wstaw->Formanty formularza->Przycisk, a następnie wybrać z listy makro, które chcemy mu przypisać

8 Przykład 2.1: Zarejestruj makro wpisujące dowolny tekst do komórki A1.

9 Zadanie 2.1: * Nagraj makro, które będzie wybierało Arkusz2. Umieść przycisk uruchamiający je w Arkuszu1

10 Zadanie 2.2: * Zarejestruj makro ustalające dla aktywnej komórki pogrubienie oraz podkreślenie czcionki. Wypróbuj jej działanie dla komórki z wpisanym tekstem.

11 Zadanie 2.3: * Zarejestruj makro selekcjonujące i otaczające w ramkę komórkę A1 aktywnego arkusza. Przypisz mu skrót klawiszowy.

12 Zadanie 2.4 ** Zarejestruj dwa makra, spośród których jedno będzie zmieniać kolor aktywnych komórek na niebieski, a drugie będzie czyściło aktywne komórkę z wszelkich kolorów. Umieść obok siebie przyciski uruchamiające oba makra

13 2.3 Edycja makr Developer->Edytor makr

14 2.3 Edycja makr Każde makro zaczyna się od wyrażenia Sub Nazwa() a kończy wyrażeniem End Sub. W przypadku długich wierszy poleceń, można przenieść część ich treści do następnej linijki stosując jako łącznik znak _ napisany po spacji. Znakiem komentarza w VBA jest apostrof umieszczony po lewej stronie Klawiszem F5 wywołujemy całe makro, w którym aktualnie znajduje się kursor, natomiast klawiszem F8 możemy wykonywać polecenia makra linijka po linijce

15 2.3 Edycja makr Nagrywanie makr powoduje rejestrowanie każdej wykonanej czynności, co powoduje odkładanie się śmieci w kodzie, zmniejszając jego szybkość działania oraz czytelność Dlatego należy uważać, aby podczas nagrywania nie wykonywać zbędnych czynności Otwierając nagrane makro w edytorze VBA, można usunąć z niego niepotrzebne elementy

16 2.3 Edycja makr Kolory w VBA Zapis kolorów przy pomocy notacji RGB pozwala na dostęp do szerszej palety kolorów niż standardowe 56

17 Przykład 2.2: Przy pomocy Edytora VBA spraw, aby makro z zadania 1 wybierało Arkusz3 zamiast Arkusza2. Zapisz je jako oddzielne makro, również przy pomocy Edytora VBA.

18 Zadanie 2.5: * Przy pomocy Edytora VBA spraw, aby makro z zadania 4 zamiast koloru niebieskiego, zmieniało tło komórki na kolor inny niż niebieski. Zapisz je jako oddzielne makro, również przy pomocy Edytora VBA.

19 Zadanie 2.6: ** Przy pomocy Edytora VBA spraw, aby makro z zadania 2 zamiast pogrubienia, powodowało pochylenie czcionki. Usuń z kodu niepotrzebne elementy tak, aby zostały tylko niezbędne instrukcje.

20 3.Zmienne i ich typy 3.1 Typy zmiennych 3.2 Deklaracja zmiennych 3.3 Instrukcja przypisania 3.4 Podstawowe funkcje matematyczne 3.5 Funkcje tekstowe 3.6 Funkcje czasowe

21 3.1 Typy zmiennych Nazwa zmiennejTyp zmiennejPrzyjmowane wartości IntegerLiczbowaLiczby całkowite DoubleLiczbowaLiczby rzeczywiste StringTekstowaTekst DateDatyData BooleanLogicznaTrue, False VariantWszystkie typyDowolna

22 3.2 Deklaracja zmiennej Deklaracja: Dim zmienna1 as Integer, zmienna2 as String Option explicit – wymusza kontrole typów zmiennych

23 3.3 Instrukcja przypisania Instrukcja przypisania: Zmienna = wartość a = 10 b = a/4.5 c = Range(A1).Value d = Karuzela e = #01/02/2013# Range(A1).Value = 70

24 Przykład 3.1: Obliczymy sumę kwadratów komórek A1 i A2, wynik wpiszemy do komórki A2

25 Zadanie 3.1: * Napisz makro, które liczy średnią z dwóch liczb z komórek A7 i A8, wynik zapisuje w komórce A9

26 Zadanie 3.2: ** Napisz makro, które przestawia zawartość komórek A1 i A2.

27 3.4 Podstawowe funkcje matematyczne Dozwolone operacje matematyczne: + dodawanie - odejmowanie * Mnożenie / dzielenie ^ potęgowanie

28 3.4 Podstawowe funkcje matematyczne Abs(x) - zwraca wartość bezwględną z x Int(x) – zwraca część całkowitą liczby x Sqr(x) – zwraca pierwiastek kwadratowy z x Sin(x), Cos(x), Tan(x) – funkcje trygonometryczne Rnd – zwraca wartość losową z przedziału (0,1) Funkcje Excela: Application.WorksheetFunction.Average()

29 Zadanie 3.3 * - przeciwprostokątna Napisz makro, które obliczy długość przeciwprostokątnej w trójkącie prostokątnym na podstawie długości boków a i b Podstaw a=3, b=4 i sprawdź czy działa

30 Zadanie 3.4 ** – funkcja kwadratowa Napisz makro, które obliczy miejsca zerowe funkcji kwadratowej na podstawie parametrów a, b i c. y=ax2+bx+c Podstaw a=1, b=-5, c=6 Podstaw a=1, b=-4, c=4 i sprawdź czy działa

31 Podpowiedź: Instrukcja warunkowa w VBA: If warunek then Operacje Else Instrukcje End if

32 Przykład oceny w szkole : Do komórek B1:B5 wpiszemy liczby losowe z przedziału 1 – 6.

33 Zadanie 3.5 *** – oceny na studiach Napisz makro, które będzie losować liczby z przedziału 2 do 5,5, z krokiem 0,5

34 3.5 Funkcje tekstowe Str(x) – zamienia liczbę x na tekst Ucase(t) – zwraca tekst t, w którym wszystkie litery są duże Left(t, x) – zwraca początkowe x znaków zmiennej tekstowej t Right(t, x) – zwraca końcowe x znaków zmiennej zmiennej tekstowej t Mid(t, start, x) – zwraca x znaków zmiennej tekstowej t od pozycji start

35 Przykład 3.3: Wytniemy z tekstu numer indeksu studenta Jaś Fasola

36 Zadanie 3.6 ** – Faktury Wytnij z poniższych tekstów numer faktury: Faktura nr: wartość: 2500 zł Faktura nr: wartość: zł Faktura nr: wartość: zł

37 3.6 Funkcje czasowe Date – zwraca dzisiejszą date Day(d) – zwraca numer dnia podanej daty d Month(d) – zwraca numer miesiąca podanej daty d Year(d) – zwraca rok w postaci liczby WeekDay(d, vbMonday) – zwraca numer dnia tygodnia

38 Przykład 3.4: Sprawdzimy w jaki dzień tygodnia wypada Sylwester 2014.

39 Zadanie 3.7* – Urodziny Sprawdź w jaki dzień tygodnia się urodziłeś, urodziłaś.

40 Przykład 3.5: Obliczymy ile dni minęło od końca Świata (od )

41 Zadanie 3.8* Napisz makro, które podaje ile przeżyłeś (przeżyłaś) dni

42 Zadanie 3.9** Napisz makro, które podaje ile przeżyłeś (przeżyłaś) pełnych miesięcy

43 Zadanie 3.10*** Napisz makro, które oblicza liczbę miesięcy pomiędzy dwoma dowolnymi datami z dokładnością do jednego miesiąca

44 Ciekawostka - Debugowanie Przycisk F8 Okno zmiennych lokalnych: View -> Locals Window

45 4. Komunikacja z użytkownikiem 4.1 Wyświetlanie informacji 4.2 Wczytywanie danych

46 4.1 Wyświetlanie informacji Do wyświetlenia informacji z programu służy funkcja MsgBox MsgBox(Prompt, Buttons, Title) Parametry: Prompt – wyrażenie String wyświetlane w oknie Title – wyrażenie String wyświetlane na pasku tytułowym Buttons – liczba określająca ilość i rodzaj przycisków, stanowi unikalną sumę wartości liczbowych cech określonych w tabelach na następnych slajdach

47 4.1 Wyświetlanie informacji Symbol stałejWartość liczbowaWyświetlane przyciski vbOKOnly0OK vbOKCancel1OK, Anuluj vbAbortRetryIgnore2 OK, Przerwij, Ponów próbę, Zignoruj vbYesNoCancel3Tak, Nie, Anuluj vbYesNo4Tak, Nie vbRetryCancel5Ponów próbę, Anuluj

48 4.1 Wyświetlanie informacji Symbol stałejWartość liczbowaSymbol graficzny vbCritical16Komunikat błędu vbQuestion32Pytanie vbExclamation48Ostrzeżenie vbInformation64Informacja

49 4.1 Wyświetlanie informacji Do stworzenia treści komunikatu w MsgBoxie możemy wykorzystać różne ciągi znaków łącząc je znakiem &. Zmienne można zamieszczać w treści bez dodawania cudzysłowu, natomiast dla ciągów znaków jest on konieczny. Aby przejść do nowej linijki należy w treści wpisać & char(10) lub & vbNewLine

50 Przykład 4.1: Napisz makro powodujące wyświetlenie okna z przyciskami Przerwij, Ponów Próbę i Zignoruj, o tytule Brak miejsca na dysku, treści Zapis niemożliwy z powodu braku miejsca na dysku i symbolem graficznym ostrzeżenia..

51 Przykład 4.2: Napisz makro powodujące wyświetlenie okna o przyciskach Tak i Nie i treści:Czy wyświetlić wynik działania 64 * 48?. Zamiast posługiwać się jednym ciągiem znaków, spróbuj zapisać ten tekst posługując się zmiennymi liczbowymi. Korzystając z instrukcji warunkowej if spraw,aby przycisk Tak powodował wyświetlenie okna o treści Wynik to:, natomiast samego wyniku w następnej linijce jako zmiennej. Przycisk Nie ma natomiast zamykać pierwsze okno.

52 Zadanie 4.1* Napisz makro, które wyświetla okno komunikatu zawierające treść Błąd krytyczny– kontynuować?, tytule Błąd, przyciskach Tak, Nie, Anuluj oraz z symbolem błędu. Wartość liczbową przycisku wybranego przez użytkownika wyświetl w następnym oknie.

53 4.1 Wyświetlanie informacji StałaWartość liczbowaWybrany przycisk vbOK1OK vbCancel2Anuluj vbAbort3Przerwij vbRetry4Ponów próę vbIgnore5Zignoruj vbYes6Tak vbNo7Nie Wartości zwracane przez funkcję MsgBox zależą od przycisku, jaki wybierze użytkownik. Możesz je odczytać przypisując funkcję MsgBox do zdefiniowanej przez siebie zmiennej całkowitej.

54 Zadanie 4.2* Napisz makro, które wyświetla okno komunikatu zawierające aktualny czas i datę. Zastosuj typ okna z przyciskiem i symbolem informacyjnym. W jednym wierszu dodaj czas, a w drugim datę. Wskazówka: Czas uzyskasz z funkcji Time$, a datę z Date$

55 4.2 Wczytywanie danych Do pobierania danych od użytkownika służą nie tylko przyciski w MsgBox, ale także w szerszym stopniu funkcja InputBox. W tym przypadku użytkownik może samemu wpisać własną odpowiedź. InputBox(Prompt, Title, Default) Default – wyrażenie typu string wyświetlane w polu edycji jako wartość domyślna

56 4.2 Wczytywanie danych Wczytywanie danych przy pomocy okna InputBox niesie ze sobą ryzyko wprowadzenia błędnego typu danych rzez użytkownika. Dlatego też wprowadzono obsługę błędów poprzez instrukcję On Error GoTo Et, aby nie powodowało to zawieszenia całego makra. Instrukcja On Error GoTo Et sprawia, że w razie wystąpienia błędu w wyniku wykonania kodu, makro automatycznie przenosi się do dodatkowej instrukcji Et:, która znajduje się na końcu makra, w następnym wierszu po Exit Sub.

57 Przykład 4.3: Napisz makro, które wczytuje liczbę od użytkownika i wyświetla jej potrojoną wartość. Zaimplementuj obsługę błędów.

58 Zadanie 4.3* Napisz makro wczytujące liczbę z następującą obsługą błędu – jeśli wczytany ciąg znaków nie jest liczbą różną od 0, wyświetl komunikat Błąd danych. Jeśli liczba jest poprawna, wyświetl komunikat zawierający jej wartość. Nie używaj instrukcji warunkowej if – dopisz do makra taki kod, aby błąd danych był faktycznie błędem, dla którego należy stworzyć obsługę.

59 Zadanie 4.4 ** – pasek poborów Przygotuj Excel do wydruku paska poborów według rysunku poniżej. Stosując Input Box wpisz dane do pustych komórek (przy czym nazwisko i imię wczytuj w 2 oddzielnych oknach). Następnie wywołaj podgląd wydruku (np. pomagając sobie w tym celu nagrywaniem makr). Formuły Premia, Brutto i Netto powinny działać automatycznie na podstawie wprowadzonych danych

60 Zadanie 4.5 ** – funkcja kwadratowa Zmodyfikuj makro z zadania 3.4 tak, aby użytkownik mógł sam wprowadzić parametry funkcji kwadratowej przy pomocy funkcji InputBox. Miejsca zerowe lub komunikat o ich braku wyświetl w następnym oknie. Wskazówka – przydatna okaże się instrukcja warunkowa If

61 Ciekawostka: czy można stworzyć grę w Excelu?

62 5. Obiekty Excela 5.1 Co to jest obiekt? 5.2 Deklaracja zmiennych obiektowych 5.3 Instrukcja with 5.4 Kolekcja obiektów 5.5 Właściwość offset 5.6 Właściwość CurrentRegion

63 5.1 Co to jest obiekt? Element składowy aplikacji Excel Np. arkusz, komórka, zakres Każdy obiekt ma swoje: - Właściwości – np. kolor komórki - Metody – np. zaznaczenie obszaru, czyszczenie komórki Po kropce wyświetlają się możliwe metody i właściwości: Obiekt.metoda / obiekt.właściwość

64 5.2 Deklaracja zmiennych obiektowych Dim nazwa_zmiennej as obiekt Set nazwa_zmiennej = wartość początkowa

65 Zadanie 5.1* - na rozgrzewkę Przy pomocy zmiennej obiektowej zaznacz komórkę B2, zwiększ jej wartość trzykrotnie i wyświetl.

66 5.3 Instrukcja with Pozwala skrócić kod With obiekt End with Instrukcje wykonywane na obiekcie, metody i właściwości poprzedzamy kropką

67 Przykład 5.1 – towary: Zbudujemy makro, które będzie wpisywać dane do tabeli postaci: Nazwa towaruCenaVAT

68 Zadanie 5.2* Przerób makro z przykładu wykorzystując instrukcje with.

69 5.4 Kolekcja obiektów Kolekcja to grupa obiektów. Wyróżniamy: Workbooks – otwarte skoroszyty Worksheets – arkusze w skoroszytach Rows – wiersze w arkuszach Columns – kolumny w arkuszach Cells – kolekcja komórek

70 5.4 Kolekcja obiektów Do obiektów w kolekcji odwołujemy się poprzez podanie indeksu lub nazwy: Workbooks(Zadania).worksheets(1).cells(2,2)

71 5.5 Właściwość offset Offset(2,0) Offset(0,-1) Offset(-2,0)

72 5.5 Właściwość offset Offset(2,0) Offset(0,-1) Offset(-2,0) Offset(?,?)

73 5.5 Właściwość offset Offset(2,0) Offset(0,-1) Offset(-2,0) Offset(?,?)

74 5.5 Właściwość offset Offset(2,0) Offset(0,-1) Offset(-2,0) Offset(?,?)

75 5.5 Właściwość offset Offset(2,0) Offset(0,-1) Offset(-2,0) Offset(?,?)

76 Jak to działa? Range(A1).offset(3,0).value = 10 czyli wpisujemy wartość 10 do komórki o 3 wiersze niżej niż komórka A1 5.5 Właściwość offset

77 Zadanie 5.4** - kolory Nadaj dowolnej komórce nazwę Start i pokoloruj ją na czerwono. Napisz makro, które maluje na niebiesko komórkę, która znajduje się 2 wiersze poniżej i 4 wiersze w prawo

78 Zadanie 5.5*** - kolorowy krzyż Stosując właściwość komórki Interior.ColorIndex i przesunięcie offset napisz makro, które maluje pięć komórek w kształcie krzyża na wybrany przez użytkownika kolor. Nazwę komórki centralnej wprowadzaj z okna InputBox. Wykorzystaj instrukcje with aby kod był bardziej elegancki

79 Zadanie 5.7*** - kantor wymiany walut Napisz makro, które: Po wczytaniu nazwy waluty i rodzaju transakcji wyświetla wartość kursu Po podaniu kwoty w złotych i rodzaju transakcji podaje wartość transakcji w nowej walucie – wynik zaokrąglić round() KupnoSprzedaż Dolar3,103,25 Euro4,004,20 Frank szw.3,253,40 Funt4,654,85

80 5.6 Właściwość CurrentRegion CurrentRegion wyczuwa zakres zwartych komórek Zakres CurrentRegion jest najmniejszym prostokątem zawierającym wskazaną komórkę i wszystkie wypełnione komórki z otoczenia

81 Przykład * Wypełnij wartościami kilka dowolnych komórek w sąsiedztwie komórki A1. Przy pomocy właściwości CurrentRegion zaznacz zwarty obszar dowolnym kolorem a następnie zaznacz pierwszy wolny wiersz

82 Zadanie 5.9** - towary Otwórz makro Towary z zadania 5.6. Napisz makro, które będzie dopisywać towary do listy jeden pod drugim.

83 Dziękujemy za uwagę!


Pobierz ppt "Kurs VBA, cz.I & II Tomasz Miklewicz Mateusz Piękoś Na podstawie: A. Snarska, Makropolecenia w Excelu."

Podobne prezentacje


Reklamy Google