Visual Basic for Applications
Automatyzacja cyklicznych czynności w Excelu.
Filmy na YouTube
Zapraszam Cię do obejrzenia poniższego filmu i subskrypcji mojego kanału!
Zagadnienia VBA
Poniżej plan nauki VBA na poziomie średniozaawansowanym.
1. Startowe zadania
- Nagraj makro, które w komórce A1 będzie wpisywać imię oraz wypełniać ją kolorem żółtym. Przeanalizuj nagrany kod oraz usuń niepotrzebne fragmenty.
- Wpisz w komórkę G4 swoje imię i wypełnij kolorem zielonym. Użyj funkcji RGB.
- Wpisz tekst „Wpisane makrem” w komórkę B2 w aktywnym arkuszu (użyj Range lub Cells).
- Skopiuj tekst z komórki A1 i wklej go do komórki C3.
- Zaznacz komórkę G4 w arkuszu trzecim.
- Usuń zawartość komórki C3 (bez formatowania).
- Usuń zawartość komórki C3 (z formatowaniem).
- Zmień wielkość czcionki w komórce A1 na 36.
- Nagraj makro, które w komórce G7 będzie wpisywać datę dzisiejsza oraz wypełniać ja kolorem zielonym z palety niestandardowej. Przeanalizuj nagrany kod oraz usuń niepotrzebne fragmenty.
- Wpisz liczbę 7 w komórki B2:C6 w aktywnym arkuszu.
- Skopiuj zawartość z komórek B2:C6 i wklej go do komórki, której zakres zaczyna się od E3.
- Zmień kolor czcionki w komórce G7 na biały.
- Wpisz w arkuszu 3 w komórkę G5 tekst „Wpisane makrem”.
2. MsgBox
- Podaj kombinację klawiszową pozwalającą sprawnie wpisać MsgBox.
- Wyświetl MsgBox z pytaniem „Czy dzisiejsza pogoda jest ładna?”
- Wyświetl MsgBox z pytaniem „Czy dzisiejsza pogoda jest ładna?”
- daj użytkownikowi możliwość kliknięcia TAK, NIE lub ANULUJ
- jakie przyciski pojawiały się domyślnie?
- Wyświetl MsgBox z pytaniem „Czy dzisiejsza pogoda jest ładna?”
- tytuł wyświetlanego okienka: „Pytanie”
- Wyświetl MsgBox z pytaniem „Czy dzisiejsza pogoda jest ładna?”
- daj użytkownikowi możliwość kliknięcia TAK, NIE lub ANULUJ
- domyślnie ma być zaznaczony przycisk Anuluj.
- Wyświetl MsgBox z pytaniem „Czy dzisiejsza pogoda jest ładna?”
- przypisz do zmiennej „odpowiedz” MsgBox i wyświetl ją w kolejnym okienku MsgBox
- co otrzymujemy jako wartość MsgBox?
- Jaki nr ma vbYes?
- Jaki nr ma vbNo?
- Wypisz wszystkie możliwe przyciski wraz z ich numerami.
- Czy te same numery obowiązują w InputBox?
3. InputBox
- Wyświetl InputBox z pytaniem „To jest Twój pierwszy InputBox?”
- Wyświetl InputBox z pytaniem „Czy dzisiejsza pogoda jest ładna?”
- ustaw domyślną odpowiedź „Oczywiście”.
- Wyświetl InputBox z pytaniem „Czy dzisiejsza pogoda jest ładna?”
- nie ustawiaj domyślnej odpowiedzi,
- jeśli użytkownik odpowie pozytywnie, wyświetl komunikat MsgBox „Świetnie!”,
- jaki problem możemy zauważyć?
- Zadaliśmy to samo pytanie użytkownikowi za pomocą MsgBox (poprzedni dział) i InputBox – który sposób jest lepszy i dlaczego?
- Stwórz nowy arkusz z nazwą podaną przez użytkownika.
- Stwórz arkusze w ilości 10 z nazwami podanymi przez użytkownika.
- Pokoloruj zakres komórek podany przez użytkownika.
- Zapisz otwarty plik Excel jako nowy plik
- lokalizacja: ten sam folder, w którym znajduje się obecny plik,
- nazwa: podana przez użytkownika,
- hasło: podane przez użytkownika.
4. For ... Next
- Wypisz liczby od 1 do 100.
- Wypisz liczby od 777 do 555.
- Wypisz liczby od 77 do 55 w komórkach od A1.
- Oblicz sumę liczb w komórkach A3:A14.
- Oblicz sumę liczb w zaznaczonym zakresie.
- Stwórz tabliczkę mnożenia.
- Stwórz listę wszystkich istniejących arkuszy w skoroszycie.
- Wpisz w pierwsze 100 parzystych wierszy numer każdego wiersza. Nie używaj instrukcji warunkowej If .. Then.
5. For ... Each
- Wpisz w każdą komórkę z zakresu B5:D40 liczbę 4.
- Wpisz w każdą pustą komórkę z zakresu B5:D40 liczbę 4.
- Zmień każdą czerwoną komórkę z zakresu B5:D40 na kolor niebieski.
- Zamień kolor czcionki we wszystkich komórkach z zakresu A1:F30:
- jeśli jest czarna to zmień na czerwona,
- jeśli jest czerwona to zmień na niebieską,
- jeśli jest niebieska to zmień na czarną.
- Oblicz sumę liczb w zaznaczonym zakresie.
- Wpisz „To jest zadanie dla każdego arkusza” w komórkę A1 w każdym arkuszu w skoroszycie.
- Wpisz w każdym arkuszu w komórce A1 nazwę tego arkusza.
- Stwórz listę wszystkich istniejących arkuszy w skoroszycie.
- * Ukryj wszystkie arkusze w skoroszycie.
- Odśwież każdą tabelę przestawną w pierwszym arkuszu.
- Odśwież każdą tabelę przestawną w tym skoroszycie.
- Wypisz 3 dowolne dane (np. nazwa, źródło danych) na temat wszystkich tabel przestawnych w pierwszym arkuszu.
6. Do ... Loop
Pętla Do … Loop może występować w 4 odmianach:
- Do … Loop Until [warunek] – warunek jest sprawdzany przy zamknięciu, wychodzimy z pętli, gdy warunek niespełniony
- Do … Loop While [warunek] – warunek jest sprawdzany przy zamknięciu , wychodzimy z pętli, gdy warunek spełniony
- Do Until [warunek] … Loop – warunek jest sprawdzany na wejściu, wychodzimy z pętli, gdy warunek niespełniony
- Do While [warunek] … Loop – warunek jest sprawdzany na wejściu, wychodzimy z pętli, gdy warunek spełniony
- Wypełnij kolumnę przylegającą do danych indeksem Lp. (1,2,3,..).
- Wyświetlaj okienko InputBox użytkownikowi „Podaj liczbę parzystą” dopóki nie osiągniesz celu.
- Wyświetlaj okienko użytkownikowi „Podaj hasło”. Użytkownik ma 3 próby. Jeśli nie uda się wpisać prawidłowego hasła, wyświetl odpowiedni komunikat informujący o ilości pozostałych prób.
7. If ... Then
- Stwórz makro, które dzieli liczbę 30 przez liczbę podaną przez użytkownika. Jeśli użytkownik poda liczbę = 0, to ma się wyświetlić komunikat „Nie dziel przez 0!”
- Użytkownik podaje swój wiek, makro ma na celu określić, czy użytkownik jest pełnoletni.
- Użytkownik podaje datę w formacie DD-MM-YYYY. Makro w odpowiedzi podaje kwartał.
- Użytkownik podaje datę urodzenia. Na tej podstawie makro podaje pierwsze 6 cyfr numeru PESEL.
- Jeśli w komórce A1 znajduje się informacja „TAK”, to kolor zakładki arkusza zmienia się na zielony.
- Mamy tabelę danych w kolumnie A, jeśli czcionka jest w rozmiarze 36 lub 20, to tekst zostaje pogrubiony.
- Dane w kolumnie A, jeśli czcionka rozmiar 36 i kolor komórki jest różny od żółtego (ColorIndex = 36), to tekst zmienia rozmiar na 8.
- Oblicz ile jest pustych komórek w zakresie A1:F30.
- Zapytaj użytkownika, „Czy na pewno uruchomić makro?”. Uruchom tylko wtedy, gdy naciśnie Tak.
8. Select Case
Dostępna tylko dla naszych kursantów
9. Funkcje
Dostępna tylko dla naszych kursantów
10. Funkcje wbudowane
Dostępna tylko dla naszych kursantów
11. Zdarzenia
Dostępna tylko dla naszych kursantów
12. UserForm
Dostępna tylko dla naszych kursantów
13. Zadania przekrojowe
Dostępna tylko dla naszych kursantów
14. Test wiedzy
Dostępna tylko dla naszych kursantów