Wprowadzenie do VBA w biznesie!
03.04.2022
Chcąc domknąć tematycznie kilka moich ostatnich wpisów zobowiązany jestem zrobić solidne wprowadzenia do VBA w biznesie.
Każda mniejsza lub większa firma dąży do efektu skali. Z roku na rok zwiększają się wymagania. Dochodzą nam nowe regiony czy segmenty biznesowe. Wszystkie te czynności sprawią, że ilość informacji diametralnie się zmienia. Widoczne jest to w każdym biznesie. Wcześniej czy później pojawi się granica, która sprawi, że jeden człowiek nie będzie wstanie wykonać więcej powtarzalnych czynności. Nie jesteśmy wstanie wykonać 10, 20, 50 czy 100 identycznych raportów w których za każdym razem coś chcemy zmienić, być może zapisać nowy plik albo przygotować kilkadziesiąt plików w formacie pdf gotowych do wydruku by następnie je wysłać do konkretnej osoby. Wiele tego typu problemów możemy rozwiązać wprowadzając VBA.
W największym skrócie VBA jest po to aby unikać sytuacji w których nasz wewnętrzny znudzony głos krzyczy: “Nie no kolejnego raportu nie dam rady już wykonać”. Tego typu problemy może pomóc Ci rozwiązać VBA lub w tym momencie Power Query.
A zatem wprowadzając do tematu przygotowałem kolejny film z biznesowym przykładem. Jeżeli jesteś na moim blogu pierwszy raz i temat wydaje Ci się zbyt skomplikowany zachęcam do odwiedzenia zakładki Bloki Tematyczne. Tam znajdziesz tematy posegregowane w kolejności od najłatwiejszych do tych delikatnie trudniejszych.
Standardowo wrzucam plik do własnego przećwiczenia. Kod makra został zapisany w arkuszu “kod”. Ze względu bezpieczeństwa nie mogę przesłać Excela w wersji z makrem. Wystarczy utworzyć nowy moduł i przekleić poniższy kod.
Plusy i minusy używania VBA
Pierwszy raz zetknąłeś się z kodem w Excelu? Jakie masz pierwsze skojarzenia?
Domyślam się, że VBA nie jest i nie będzie dla wszystkich. Jednak nadal jest wykorzystywany. Jako ciekawostkę powiem, że jako początkowy makro deweloper kilka lat temu czytałem o kresie VBA, jednak on dalej trwa?! Dlaczego? Hmm… Zaletą VBA jest to, że po pierwsze jest w Excelu, który jest podstawowym narzędziem na wielu stanowiskach. Dodatkowo subiektywnie oceniam, że jest prosty. Z minusów? Jest mało wydajny. Jak trochę popracujecie to poczujecie, że pomimo tego, że wiele rzeczy niesamowicie przyspiesza to… czasami potrzebuję trochę czasu. Z drugiej wady powiem, że wymaga szczegółowego planowania. Daleko nie zajedziemy tworząc długi kod, który po krótkim czasie postanowimy diametralnie zmienić, przesunąć jedną lub kilka kolumn.
Dlatego w przypadku VBA
szczegółowy plan = lżejsze utrzymanie
Wprowadzenie do VBA w biznesie - pytania i odpowiedzi
Jak ważne jest nagrywanie makr do nauki VBA?
Warto jeszcze wspomnieć, że zaletą użycia VBA jest fakt, że pewnie wszystkie problemy zostały już szczegółowo opisane i rozwiązane (strony StackOverflow waszym przyjacielem). Dodatkowo chyba żaden język programowania nie daje możliwości nagrania czynności z której samodzielnie może nam się utworzyć docelowy kod źródłowy. W tym celu niezbędne jest na etapie nauki nagrywanie makr.
Jeżeli jeszcze nie wiesz czym są makra po raz kolejny odsyłam Cię do mojego wcześniejszego wpisu. (tutaj). Także odpowiadając na pytanie: “Nagrywanie makr jest cholernie ważne podczas nauki VBA.” Pamiętać należy, że instrukcje warunkowe, pętle czy kilka innych funkcjonalności nie jesteśmy wstanie nagrać i to już wymaga naszego działania.
Czy wprowadzenie do VBA w biznesie jest teraz niezbędne?
Tak jak wspomniałem w filmie, w tym momencie Power Query stało się pierwszym wyborem przy pewnych działaniach, jakie jeszcze jakiś czas temu zarezerwowane były wyłącznie do rozwiązania przy użyciu VBA.
Skoro VBA nie jest niezbędne to po co mi ten jezyk?
Reasumując, VBA rozwiązuje szereg problemów jakie możesz napotkać podczas wykonywania raportów, jakich nie jesteś wstanie rozwiązać przy pomocy PQ:
- Skomplikowane instrukcje warunkowe w których przy spełnieniu lub nie spełnieniu jakiegoś warunku wykonujesz kilkanaście różnych czynności.
- Przygotowanie wielu jednakowych raportów, konwertowanie do pdf, wysyłanie do różnych użytkowników różnych raportów.
- Korespondencja seryjna. Wyślij raport z załącznikiem do Stefana, Michała i Pawła, gdzie każdy ma otrzymać swój segment biznesowy.
- Tworzenie “Dashboardów Zarządczych“, w których prezentujesz, obrabiasz dane w sposób automatyczny codziennie bez ingerencji użytkowników.
- Tworzenie skonsolidowanych raportów, którymi zarządzasz w sposób bardziej skomplikowany, niż tylko ściągając wszystkie dane do jednego pliku (obrabianie, zmienianie wartości, kopiowanie wielu skoroszytów po spełnieniu określonych warunków). Prosta konsolidacja -> Power Query
Warto wspomnieć, że VBA jest też kolejnym ważnym krokiem aby nie napotkać na swojej drodze czynności, którą będziemy musieli wykonywać manualnie, w sposób daleko nieefektywny. Jest to również właśnie jeden z wymaganych umiejętności na rynku pracy w przypadku aplikowania na stanowisko analityczne. Dorzuć do tego wspominanego przeze mnie SQL, Power Query, może znajomość narzędzi do wizualizacji danych jak Tableau czy Power BI i przepis na lepiej płatną pracę jak znalazł!
Czy muszę skończyć jakieś kursy aby poznać dobrze VBA i używać w codziennej pracy?
Na kilka stanowisk na jakie aplikowałem dostawałem całą dawkę pytań o VBA, jednak nigdy nie pytali mnie się o kursy poświadczające moje umiejętności. Żeby nie było za lekko. VBA wymaga pracy i rozwiązywania realnych problemów z którymi będziesz się musiał zmierzyć. Pisząc pierwszy kod nie potrwa to długo, kiedy napotkasz po uruchomieniu makra okienko błędu z opisem: “Run time error 1004”. Jest to całkowicie normalne, że będziesz musiał zmierzyć się z błędami, jak każda osoba ucząca się nowego języka programowania!
Wracając do pytań z rozmowy o pracę. Pytania jakie mi się zdarzały:
- Jaki ostatnio projekt rozwiązałeś przy pomocy VBA?
- Jakie trudności napotkałeś?
- Po co stosuje się zmienne w VBA?
- Jaki najbardziej rewolucyjne rozwiązanie stworzyłeś w VBA i dlaczego jesteś z niego dumny?
- Jakie mamy rodzaje pętli w VBA?
O zmiennych słów parę - rozwinięcie do filmu wprowadzenie do VBA w biznesie
Nie lubię zostawiać moich podopiecznych w przysłowiowym lesie, dlatego muszę nawiązać do części ćwiczeniowej w której deklarowałem zmienne, a które zostały przeze mnie opisane bardzo powierzchownie (około 5 minuty). Zmienne to nazwa pomocnicza, która ma nam pomóc tworząc kod, ale pomaga również Excelowi zrozumieć co chcemy zrobić. Tworząc zmienną zaczynamy od słowa “Dim” – co w wolnym tłumaczeniu jest skrótem od “dimension“, co znaczy wzór/wymiar. Jest to moment w którym musimy również zadeklarować czym nasza zmienna jest, po to aby program wiedział jak zachować się z określoną zmienną. Deklarujemy zmienne we fragmencie po “as” na przykład. Dim LastRow as LONG.
Wypiszę teraz najczęściej używane typy zmiennych.
Zmienne mogą być zadeklarowane jako liczba:
- int – integer – liczba całkowita z zakresu – 32 768 do 32 768
- long – liczby całkowite z zakresu – 2 147 483 648 do 2 147 483 648
- boolean – prawda/fałsz czyli liczby 0 i 1.
- date – dla dat
- single i double – “rozszerzona wersja int i long o liczby zmienno przecinkowe
- string – przechowujesz tekst
- worksheet – arkusz
- range – zakres
Dlaczego to jest takie ważne? Jeżeli tego nie zrobisz program będzie przechowywał Twoje zmienne jako niezdefiniowany obiekt, przez co niepotrzebnie będzie pobierał dużo więcej pamięci (makra będą działały wolniej). Deklaracja pozwala ograniczać przestrzeń na zmienną. Inną pamięć zużyjemy na liczbę 32 768, a inną na wartość 0 lub 1. Dodatkowo warto wspomnieć, że w przypadku gdy coś nie będzie ciągiem znaków w komórce, a na przykład arkuszem albo zakresem w Excelu może spowodować szereg komplikacji w kodzie.
Jak używać VBA - podsumowanie
Cieszę się, że dotrwałeś do tego momentu. Świadczy to, że jesteś wytrwałym graczem!
Jak się czujesz po zapoznaniu się z programowaniem w Excelu? Jest to dla Ciebie? Czy może bardziej przypadło Ci do gustu agregowanie danych przy pomocy SQL albo prosta automatyzacja przy pomocy Power Query? Napotkałeś jakiś problem z którym nie mogłeś/aś sobie poradzić?
Dodatkowo zapytam jak odbierasz moje wstępy do omówienia tematu? Czy jednak czekasz tylko z nieciepliwością na garść ćwiczeń z plikiem do własnego zastosowania? Daj znać jak odbierasz treści, które tworze! Komentarz pod filmem na youtubie, pod postem na Linkedin lub Facebooku jest dla mnie na wagę złota! Krytyczne też są mile widziane!
Pozdrawiam,
Mariusz