Kategorie
Bez kategorii

VBA, czyli szerokie spektrum możliwości automatyzacji ukryte w Excelu. Część I

VBA, czyli Visual Basic for Applications. W tym przypadku dla nas i dla oszczędności naszego czasu. Co trzeba wiedzieć, aby móc to osiągnąć? Zobaczmy!

Visual Basic for Applications to język programowania obiektowego, za którego pomocą jesteśmy w stanie zautomatyzować swoją pracę. Okaże się on szczególnie przydatny, gdy operujesz na dużych zbiorach danych w Excelu oraz innych programach Microsoft Office. Dzięki niemu zaoszczędzisz sporo czasu, który musiałbyś poświęcić na powtarzalne czynności. W rezultacie będziesz mógł się skupić na istotniejszych kwestiach Twojej pracy. VBA nie musi być utożsamiany jedynie z zaawansowaną pracą obliczeniową w korporacjach ani z programistami z wieloletnim doświadczeniem. Możesz nauczyć się go sam w domowym zaciszu i wykorzystać do własnych potrzeb. Brzmi intrygująco, prawda?

Czym jest VBA?

VBA to wbudowany w program Excel język programowania obiektowego, który swoje główne zastosowanie znajduje w Excelu. Nie oznacza to jednak, iż korzystając z VBA musimy się ograniczać jedynie do tego programu, ponieważ język ten obsługuje także inne programy pakietu MS Office tj. Word czy Power Point. Nadrzędnym celem programu jest przeprowadzanie operacji na obiektach i danych. Warto wspomnieć, iż jest on domyślnie zainstalowany wraz z programem MS Excel. Nie jest on jednak widoczny na pierwszy rzut oka – aby go uruchomić, należy włączyć zakładkę Deweloper. W tym celu należy kliknąć na przycisk „Plik” -> „Więcej” -> „Opcje” -> „Dostosowywanie wstążki” -> zatwierdzić ptaszkiem opcję „Deweloper”.

Należy wspomnieć, iż VBA jest językiem silnie typowanym. Oznacza to, iż musimy podać wartości, zmienne oraz określić ich typ, aby program prawidłowo wykonał obliczenia.

Do czego wykorzystujemy VBA?

VBA umożliwia wykorzystanie możliwości Excela i całego pakietu Office w znacznie większym stopniu. Pozwala na zautomatyzowanie zadań, konsolidację plików, eksportowanie plików do innego formatu (np. xls -> PDF), tworzenie funkcji, których nie ma w Excelu, programowanie obiektów oraz nadawanie im bardziej profesjonalnego wyglądu. VBA poprzez możliwość automatyzacji pracy zapewnia nam więc oszczędność czasu, dzięki czemu my możemy skupić się na bardziej istotnych kwestiach naszej pracy. Wykorzystać można go nie tylko w firmach operujących na dużych zbiorach danych, ale także w codziennych, „domowych” zadaniach tj. utworzenie samoprzeliczającego się budżetu domowego, którego forma ostateczna będzie zaprezentowana w czytelnych wykresach. Możliwości jest wiele i tak naprawdę to od nas zależy, do czego wykorzystamy ten język programowania. Jeśli chodzi o perspektywę biznesową, VBA znalazło szerokie zastosowanie wszędzie tam, gdzie danych liczbowych jest dużo – w szczególnie w sektorze finansów, księgowości, sprzedaży, logistyki, magazynowania i bankowości czy produkcji.

Jaki jest schemat działania Visual Basic for Applications?

Aby móc skorzystać z dobrodziejstw automatyzacji oferowanej nam przez VBA, należy najpierw poznać sposób funkcjonowania tego języka, poznać podstawowe komendy, schemat postępowania oraz nauczyć się myśleć tak, jak wymaga tego kod VBA. Programowanie w tym języku to nic innego, jak wywoływanie zadań, które aplikacja ma dla nas wykonać. Jeśli uczyliście się kiedyś zarządzania, z pewnością słyszeliście, iż jedną z podstawowych zasad skutecznej komunikacji jest dostosowanie sposobu przekazywania informacji przez nadawcę do odbiorcy. W tym przypadku nadawcą jesteśmy my – początkujący programiści, a odbiorcą program. Musimy więc przekazać mu komendy w sposób, który zinterpretuje poprawnie.

Jak wcześniej wspomniano, VBA to język zorientowany obiektowo (OOP – Object-Oriented Programming), który jest silnie typowany. Określenie OOP odnosi się do faktu, iż Visual Basic for Applications operuje na obiektach. W tym celu należy także przytoczyć pojęcia takie jak: atrybut, właściwości, metoda, hierarchie, funkcje, zmienne.

Podstawowe pojęcia w języku programowania VBA

Obiektem może być każdy element programu MS Excel – tzn. każda komórka, arkusz, skoroszyt, wykres, tabela, tabela przestawna.

Hierarchie – jako, że obiektem może być każdy element, muszą one być uszeregowane w hierarchie – oznacza to, że np. komórka B5 oraz tabela przestawna „Koszty ukryte dla Szkoły Psów na rok 2022” muszą być przypisane do danego arkusza, a arkusz do skoroszytu. To jakby ścieżka, którą musimy podążać „od ogółu do szczegółu”, aby znaleźć dany obiekt.

Atrybut jest równoznaczny z pojęciem właściwość. Każdy obiekt ma właściwości, które określają jego cechy. Mogą się odnosić do ogólnego wyglądu, wielkości, rozmiaru, koloru, położenia. Z życia codziennego – obiektem może być np. kubek. Jego atrybutami będą: kolor, wzór, miejsce, w którym aktualnie jest, pojemność oraz materiał wykonania. Aby określić atrybut w VBA musimy skorzystać ze znaku kropki (.), który będzie służył odniesienie do obiektu oraz znaku równości (=), który będzie definiować atrybut.

Np. object.property = atribute

Czyli w naszym przypadku: mug.proprerty = colour lub mug.property = capacity.

Wartość – każda właściwość/atrybut ma zdefiniowaną wartość. Obiektem jest kubek, jego właściwością jest kolor, a jego wartością czarny.

Np. atribute.value = black

W naszym przypadku: MugProperty.value = black

Metoda – określa, jak ma zachować się program względem obiektu – np. kopiuj, pomnóż, podziel, usuń, wyczyść itp. Składnia jest dość prosta:

Object.method

Zmienna – jako, że VBA jest językiem silnie typowanym, musimy ją zdefiniować na początku kodu za pomocą komendy Dim oraz określić jej charakter (Integer, Double, Date – o rodzajach zmiennych więcej informacji znajdziecie w kolejnym poście)

Np. Dim IloscDniwRoku as Integer

Należy zwrócić uwagę, iż podczas wpisywania komend nie używamy spacji ani polskich znaków. Wyjątkiem jest jedynie tekst, który ma być wyświetlony i który będzie ujęty w nawiasie.

Funkcja – operacja na co najmniej jednej zdefiniowanej zmiennej. Przykładem funkcji może być znana z Excela funkcja jeżeli, czyli funkcja If w VBA – komendy w VBA są w języku angielskim)

Przejdźmy więc do zastosowania powyższych informacji w praktyce i spróbujmy napisać prosty kod w VBA.

Przykładowy kod

Krok 1

Należy zacząć od włączenia opcji Option Explicit, która wymusza na programie sprawdzenie, czy określiliśmy zmienne. Jest to przydatna opcja w przypadku, gdy nasz kod ma kilkaset linijek, a my zapomnieliśmy, lub pomyliliśmy się w definiowaniu zmiennych, a następnie musimy sami szukać błędu.

Krok 2

Pisanie kodu zaczynamy od komendy Sub () – tutaj definiujemy nazwę kodu pamiętając, aby nie używać spacji ani polskich znaków.

Np. Sub Wiek ()

Krok 3

Następnie określamy typ zmiennych:

Np. dim MojWiek, IloscDniWRoku, TyleDniZyje as Integer – jeżeli zmienne są tego samego typu, możemy podać je po przecinku lub od nowej linijki (jak na screenie niżej)

Krok 4

Określamy wartości zmiennych

MojWiek = 24

IloscDniWRoku = 365

TyleDniZyje = MojWiek * IloscDniWRoku

Krok 5

Jeżeli chcemy widzieć zmienne, których używamy w kodzie także w arkuszu, należy użyć funkcji Range. Określamy ją w następujący sposób: Range(„adres komórki”)= wartość

Range(„A1”) = MojWiek

Range(„B1”) = IloscDniWRoku

Range(„C1”) = TyleDniZyje (zakładając, że dziś mamy urodziny. Do dokładniejszych obliczeń przejdziemy w części 2)

Krok 6

W celu zakończenia kodu funkcji używamy komendy End Sub.

Krok 7

Kod uruchamiamy przez wciśnięcie zielonego trójkąta (zaznaczony na czerwono) lub klawisza F5. Kod oraz arkusz będzie wyglądał w następujący sposób:

Aby makro działało także po zapisaniu i zamknięciu pliku, należy ręcznie wybrać rozszerzenie Excela umożliwiające odczyt makr – xlsm.

Podsumowanie

Visual Basic for Applications może pomóc nam w usprawnieniu niejednej czynności. Automatyzacja pracy pozwala na dużą oszczędność czasu oraz skupienie uwagi na istotniejszych zadaniach niż powtarzalne czynności w pakiecie MS Office. Język ten nie jest zbyt skomplikowany. Uważamy, że jest dobrym wyborem na początek swojej przygody z programowaniem, nawet jeśli na początku nasza wiedza jest zerowa. Ponadto, poznając jeden język programowania, łatwiej będzie Ci przyswoić informacje o innym języku. Im więcej wiesz, rozumiesz i działasz, tym większą swobodę wyrobisz sobie w pracy z innymi językami programowania. Podsumowując – naszym zdaniem VBA jest godnym nauki językiem programowania, który pomoże Ci zautomatyzować Twoją pracę. Kto wie, może pisanie kodu w tym języku z czasem stanie się dla Ciebie nie lada frajdą, która wzmoże Twoją chęć rozwoju w obszarze programistycznym.

W celu pogłębienia swojej wiedzy zapraszamy do przeczytania kolejnego postu, który pojawi się wkrótce.

Tymczasem trzymamy mocno kciuki za Waszą naukę! 😊

Do zobaczenia!

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.