Kurs VBA, cz.I & II

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

description

Kurs VBA, cz.I & II. Tomasz Miklewicz Mateusz Piękoś Na podstawie: A. Snarska , Makropolecenia w Excelu. Agenda. Wstęp Środowisko makr Zmienne i ich typy Komunikacja z użytkownikiem Zmienne obiektowe Excela. 1. Wstęp. Sprawy organizacyjne VBA – do czego się przydaje? - PowerPoint PPT Presentation

Transcript of Kurs VBA, cz.I & II

Page 1: Kurs VBA,  cz.I & II

Kurs VBA, cz.I&II

Tomasz MiklewiczMateusz Piękoś

Na podstawie: A. Snarska, Makropolecenia w Excelu

Page 2: Kurs VBA,  cz.I & II

Agenda

1. Wstęp

2. Środowisko makr

3. Zmienne i ich typy

4. Komunikacja z użytkownikiem

5. Zmienne obiektowe Excela

Page 3: Kurs VBA,  cz.I & II

1. Wstęp

• Sprawy organizacyjne

• VBA – do czego się przydaje?

• Przykłady zastosowań w pracy

Page 4: Kurs VBA,  cz.I & II

2. Środowisko makr

2.1 Dostosowanie Excela2.2 Nagrywanie makr2.3 Edycja makr

Page 5: Kurs VBA,  cz.I & II

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

Page 6: Kurs VBA,  cz.I & II

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ń

Page 7: Kurs VBA,  cz.I & II

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ć

Page 8: Kurs VBA,  cz.I & II

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

Page 9: Kurs VBA,  cz.I & II

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

Page 10: Kurs VBA,  cz.I & II

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.

Page 11: Kurs VBA,  cz.I & II

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

Page 12: Kurs VBA,  cz.I & II

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

Page 13: Kurs VBA,  cz.I & II

2.3 Edycja makr• Developer->Edytor makr

Page 14: Kurs VBA,  cz.I & II

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

Page 15: Kurs VBA,  cz.I & II

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

Page 16: Kurs VBA,  cz.I & II

2.3 Edycja makr• Kolory w VBA

.colorindex= .color=RGB .colorindex .color=RGB .colorindex .color=RGB .colorindex .color=RGB1 (0, 0, 0) 15 (192, 192, 192) 29 (128, 0, 128) 43 (153, 204, 0)2 (255, 255, 255) 16 (128, 128, 128) 30 (128, 0, 0) 44 (255, 204, 0)3 (255, 0, 0) 17 (153, 153, 255) 31 (0, 128, 128) 45 (255, 153, 0)4 (0, 255, 0) 18 (153, 51, 102) 32 (0, 0, 255) 46 (255, 102, 0)5 (0, 0, 255) 19 (255, 255, 204) 33 (0, 204, 255) 47 (102, 102, 153)6 (255, 255, 0) 20 (204, 255, 255) 34 (204, 255, 255) 48 (150, 150, 150)7 (255, 0, 255) 21 (102, 0, 102) 35 (204, 255, 204) 49 (0, 51, 102)8 (0, 255, 255) 22 (255, 128, 128) 36 (255, 255, 153) 50 (51, 153, 102)9 (128, 0, 0) 23 (0, 102, 204) 37 (153, 204, 255) 51 (0, 51, 0)10 (0, 128, 0) 24 (204, 204, 255) 38 (255, 153, 204) 52 (51, 51, 0)11 (0, 0, 128) 25 (0, 0, 128) 39 (204, 153, 255) 53 (153, 51, 0)12 (128, 128, 0) 26 (255, 0, 255) 40 (255, 204, 153) 54 (153, 51, 102)13 (128, 0, 128) 27 (255, 255, 0) 41 (51, 102, 255) 55 (51, 51, 153)14 (0, 128, 128) 28 (0, 255, 255) 42 (51, 204, 204) 56 (51, 51, 51)

• Zapis kolorów przy pomocy notacji RGB pozwala na dostęp do szerszej palety kolorów niż standardowe 56

Page 17: Kurs VBA,  cz.I & II

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.

Page 18: Kurs VBA,  cz.I & II

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.

Page 19: Kurs VBA,  cz.I & II

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.

Page 20: Kurs VBA,  cz.I & II

3.Zmienne i ich typy

3.1 Typy zmiennych3.2 Deklaracja zmiennych3.3 Instrukcja przypisania3.4 Podstawowe funkcje matematyczne3.5 Funkcje tekstowe3.6 Funkcje czasowe

Page 21: Kurs VBA,  cz.I & II

3.1 Typy zmiennych

Nazwa zmiennej Typ zmiennej Przyjmowane wartości

Integer Liczbowa Liczby całkowite

Double Liczbowa Liczby rzeczywiste

String Tekstowa Tekst

Date Daty Data

Boolean Logiczna True, False

Variant Wszystkie typy Dowolna

Page 22: Kurs VBA,  cz.I & II

3.2 Deklaracja zmiennej

• Deklaracja:Dim zmienna1 as Integer, zmienna2 as String

• Option explicit – wymusza kontrole typów zmiennych

Page 23: Kurs VBA,  cz.I & II

3.3 Instrukcja przypisania

• Instrukcja przypisania: Zmienna = wartość

a = 10b = a/4.5c = Range(„A1”).Valued = „Karuzela”e = #01/02/2013#Range(„A1”).Value = 70

Page 24: Kurs VBA,  cz.I & II

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

do komórki A2

Page 25: Kurs VBA,  cz.I & II

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

Page 26: Kurs VBA,  cz.I & II

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

Page 27: Kurs VBA,  cz.I & II

3.4 Podstawowe funkcje matematyczne

• Dozwolone operacje matematyczne:+ dodawanie- odejmowanie* Mnożenie/ dzielenie^ potęgowanie

Page 28: Kurs VBA,  cz.I & II

3.4 Podstawowe funkcje matematyczne

Abs(x) - zwraca wartość bezwględną z xInt(x) – zwraca część całkowitą liczby xSqr(x) – zwraca pierwiastek kwadratowy z xSin(x), Cos(x), Tan(x) – funkcje trygonometryczneRnd – zwraca wartość losową z przedziału (0,1)

• Funkcje Excela:Application.WorksheetFunction.Average()

Page 29: Kurs VBA,  cz.I & II

Zadanie 3.3 * - przeciwprostokątnaNapisz 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

Page 30: Kurs VBA,  cz.I & II

Zadanie 3.4 ** – funkcja kwadratowaNapisz 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=6Podstaw a=1, b=-4, c=4i sprawdź czy działa

Page 31: Kurs VBA,  cz.I & II

Podpowiedź:Instrukcja warunkowa w VBA:If warunek thenOperacjeElseInstrukcjeEnd if

Page 32: Kurs VBA,  cz.I & II

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

Page 33: Kurs VBA,  cz.I & II

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

Page 34: Kurs VBA,  cz.I & II

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

Page 35: Kurs VBA,  cz.I & II

Przykład 3.3:Wytniemy z tekstu numer indeksu studenta

Jaś Fasola 34512.

Page 36: Kurs VBA,  cz.I & II

Zadanie 3.6 ** – FakturyWytnij z poniższych tekstów numer faktury:

Faktura nr: 54205 wartość: 2500 złFaktura nr: 24510 wartość: 35 000 złFaktura nr: 22301 wartość: 1 000 000 zł

Page 37: Kurs VBA,  cz.I & II

3.6 Funkcje czasowe

Date – zwraca dzisiejszą dateDay(d) – zwraca numer dnia podanej daty dMonth(d) – zwraca numer miesiąca podanej daty dYear(d) – zwraca rok w postaci liczbyWeekDay(d, vbMonday) – zwraca numer dnia tygodnia

Page 38: Kurs VBA,  cz.I & II

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

Page 39: Kurs VBA,  cz.I & II

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

Page 40: Kurs VBA,  cz.I & II

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

Page 41: Kurs VBA,  cz.I & II

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

Page 42: Kurs VBA,  cz.I & II

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

Page 43: Kurs VBA,  cz.I & II

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

Page 44: Kurs VBA,  cz.I & II

Ciekawostka - Debugowanie

• Przycisk F8

• Okno zmiennych lokalnych:View -> Locals Window

Page 45: Kurs VBA,  cz.I & II

4. Komunikacja z użytkownikiem

4.1 Wyświetlanie informacji4.2 Wczytywanie danych

Page 46: Kurs VBA,  cz.I & II

4.1 Wyświetlanie informacji

• Do wyświetlenia informacji z programu służy funkcja MsgBoxMsgBox(Prompt, Buttons, Title)

• Parametry:Prompt – wyrażenie String wyświetlane w oknieTitle – 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

Page 47: Kurs VBA,  cz.I & II

4.1 Wyświetlanie informacji

Symbol stałej Wartość liczbowa Wyświetlane przyciski

vbOKOnly 0 OK

vbOKCancel 1 OK, Anuluj

vbAbortRetryIgnore 2 OK, Przerwij, Ponów próbę, Zignoruj

vbYesNoCancel 3 Tak, Nie, Anuluj

vbYesNo 4 Tak, Nie

vbRetryCancel 5 Ponów próbę, Anuluj

Page 48: Kurs VBA,  cz.I & II

4.1 Wyświetlanie informacji

Symbol stałej Wartość liczbowa Symbol graficzny

vbCritical 16 Komunikat błędu

vbQuestion 32 Pytanie

vbExclamation 48 OstrzeżenievbInformation 64 Informacja

Page 49: Kurs VBA,  cz.I & II

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

Page 50: Kurs VBA,  cz.I & II

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.

.

Page 51: Kurs VBA,  cz.I & II

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.

Page 52: Kurs VBA,  cz.I & II

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.

Page 53: Kurs VBA,  cz.I & II

4.1 Wyświetlanie informacji

Stała Wartość liczbowa Wybrany przycisk

vbOK 1 OK

vbCancel 2 Anuluj

vbAbort 3 Przerwij

vbRetry 4 Ponów próę

vbIgnore 5 ZignorujvbYes 6 Tak

vbNo 7 Nie

• 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.

Page 54: Kurs VBA,  cz.I & II

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$

Page 55: Kurs VBA,  cz.I & II

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

Page 56: Kurs VBA,  cz.I & II

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: <Kod>, która znajduje się na końcu makra, w następnym wierszu po Exit Sub.

Page 57: Kurs VBA,  cz.I & II

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.

Page 58: Kurs VBA,  cz.I & II

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ę.

Page 59: Kurs VBA,  cz.I & II

Zadanie 4.4 ** – pasek poborówPrzygotuj 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

Page 60: Kurs VBA,  cz.I & II

Zadanie 4.5 ** – funkcja kwadratowaZmodyfikuj 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

Page 61: Kurs VBA,  cz.I & II

Ciekawostka: czy można stworzyć grę w Excelu?http://carywalkin.wordpress.com/2013/03/17/arena-xlsm-released/

Page 62: Kurs VBA,  cz.I & II

5. Obiekty Excela

5.1 Co to jest obiekt?5.2 Deklaracja zmiennych obiektowych5.3 Instrukcja with5.4 Kolekcja obiektów5.5 Właściwość offset5.6 Właściwość CurrentRegion

Page 63: Kurs VBA,  cz.I & II

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ść

Page 64: Kurs VBA,  cz.I & II

5.2 Deklaracja zmiennych obiektowych

Dim nazwa_zmiennej as obiekt

Set nazwa_zmiennej = wartość początkowa

Page 65: Kurs VBA,  cz.I & II

Zadanie 5.1* - na rozgrzewkęPrzy pomocy zmiennej obiektowej zaznacz komórkę B2, zwiększ

jej wartość trzykrotnie i wyświetl.

Page 66: Kurs VBA,  cz.I & II

5.3 Instrukcja with

• Pozwala skrócić kodWith obiektEnd with

• Instrukcje wykonywane na obiekcie, metody i właściwości poprzedzamy kropką

Page 67: Kurs VBA,  cz.I & II

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

postaci:

Nazwa towaru Cena VAT

Page 68: Kurs VBA,  cz.I & II

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

Page 69: Kurs VBA,  cz.I & II

5.4 Kolekcja obiektów

• Kolekcja to grupa obiektów. Wyróżniamy:Workbooks – otwarte skoroszytyWorksheets – arkusze w skoroszytachRows – wiersze w arkuszachColumns – kolumny w arkuszachCells – kolekcja komórek

Page 70: Kurs VBA,  cz.I & II

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)

Page 71: Kurs VBA,  cz.I & II

5.5 Właściwość offset

     

     

     

     

     

Offset(2,0)

Offset(0,-1) Offset(0,-1)

Offset(-2,0)

Page 72: Kurs VBA,  cz.I & II

5.5 Właściwość offset

     

     

     

     

     

Offset(2,0)

Offset(0,-1) Offset(0,-1)

Offset(-2,0)

Offset(?,?)

Page 73: Kurs VBA,  cz.I & II

5.5 Właściwość offset

     

     

     

     

     

Offset(2,0)

Offset(0,-1) Offset(0,-1)

Offset(-2,0)

Offset(?,?)

Page 74: Kurs VBA,  cz.I & II

5.5 Właściwość offset

     

     

     

     

     

Offset(2,0)

Offset(0,-1) Offset(0,-1)

Offset(-2,0)

Offset(?,?)

Page 75: Kurs VBA,  cz.I & II

5.5 Właściwość offset

     

     

     

     

     

Offset(2,0)

Offset(0,-1) Offset(0,-1)

Offset(-2,0)

Offset(?,?)

Page 76: Kurs VBA,  cz.I & II

• 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

Page 77: Kurs VBA,  cz.I & II

Zadanie 5.4** - koloryNadaj 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

Page 78: Kurs VBA,  cz.I & II

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”

Page 79: Kurs VBA,  cz.I & II

Zadanie 5.7*** - kantor wymiany walutNapisz 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()

Kupno Sprzedaż

Dolar 3,10 3,25

Euro 4,00 4,20

Frank szw. 3,25 3,40

Funt 4,65 4,85

Page 80: Kurs VBA,  cz.I & II

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

Page 81: Kurs VBA,  cz.I & II

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

Page 82: Kurs VBA,  cz.I & II

Zadanie 5.9** - towaryOtwórz makro Towary z zadania 5.6. Napisz makro, które będzie

dopisywać towary do listy jeden pod drugim.

Page 83: Kurs VBA,  cz.I & II

Dziękujemy za uwagę!