Do czego służy Visual Basic
Do czego służy Visual Basic, czyli dwa słowa o tajemniczych makrach
VBA Excel – co to takiego jest? Zanim odpowiemy na to pytanie, zacznijmy od tego czym jest makro?
Wyobraźcie sobie, że klikacie w jakimś programie – dla ułatwienia weźmy na tapetę Excel, ale moglibyśmy również rozmawiać o MS Word, czy MS PowerPoint. Załóżmy, że chcecie stworzyć odpowiednie formatowanie dla Waszej tabelki – zaznaczacie obszar, stosujecie formatowanie (obramowanie etc.). Każdą Waszą czynność MS Excel musi w jakiś sposób przetłumaczyć na komendy, które mogą zostać wykonane przez program. W dużym uproszczeniu wygląda to tak – klikając na polecenie Excel tłumaczy je na pewien język programowania. Tym językiem jest Visual Basic for Applications, a więc w skrócie VBA.
Samo Makro to nic innego jak jakiś fragment kodu zapisany właśnie w języku VBA.
Istnieje co najmniej kilka powodów, aby nauczyć się VBA
W tym miejscu wymienimy najistotniejsze z nich. Przede wszystkim VBA w Excelu warto się uczyć, aby nie komplikować, ale upraszczać sobie życie. Dokładnie służy temu…
Automatyzacja
Klikając w ikonkę lub stosując obramowanie wykonujesz jedną czynność. Ewentualnie kilka zgrupowanych (np. wklejanie zarówno zawartości jak i formatowania). Na tym kończy się działanie Twojego kliknięcia. W Visual Basic for Applications (VBA) możesz zapisać pewien kod (instrukcje VBA), które wykonują się po sobie kolejno bez żadnej zwłoki. Jeśli zatem w takim makrze uwzględnisz – utworzenie arkusza, zmianę jego nazwy, przekopiowanie do niego danych i sformatowanie – możesz te wszystkie czynności wykonać za jednym kliknięciem w ułamku sekundy.
Dzięki makrom możesz uzyskać magiczne efekty – np. w Excelu możesz:
- PDFować wszystkie arkusze do oddzielnych plików,
- Łączyć (konsolidować) ze sobą pliki,
- Ustalać ochronę jednocześnie dla wszystkich arkuszy,
- Rejestrować zmiany w pliku,
- Odświeżać tabele przestawne z różnych źródeł,
- Wysyłać maile łącząc się z Outlookiem,
- Przepisywać dane do strony internetowej.
Ponadto łatwiej przekażesz dane między różnymi aplikacjami – np. PowerPoint, Excel i Outlookiem.
Twoje arkusze będą bardziej „eleganckie” i… szybsze
Zamiast tworzyć zaawansowanej wielopoziomowej formuły, która ledwo mieści się w pasku formuły – możesz utworzyć własną funkcję, która wykona wskazane zadanie. Łatwiej też będzie przekazać użytkownikom plik do dalszej edycji jeśli np. opatrzysz go własnym formularzem.
Uzyskasz funkcje, których nie ma w Excelu, Wordzie, PowerPoincie
Próbowałeś kiedyś utworzyć funkcję, która zamienia wyrazy z polskimi znakami na wyrazy bez znaków diakrytycznych? Nie jest to takie oczywiste i proste, prawda? Chyba, że znasz Visual Basic for Applications (VBA) i stworzysz taką funkcję:
Function FunZamieńPolskie(k As String)
Dim x As String, y As String, i As Integer
x = “ążśźęćń󳥯ŚŹĘĆŃÓŁ”
y = “azszecnolAZSZECNOL”
FunZamieńPolskie = k
For i = 1 To Len(x)
FunZamieńPolskie = Replace(FunZamieńPolskie, Mid(x, i, 1), Mid(y, i, 1))
Next
End Function
… i gotowe!
Czym makro nie jest? A więc, gdzie należy uważać
Gdy pytamy na szkoleniu czy wiecie czym jest makro to zazwyczaj odpowiadacie, że czymś co automatyzuje pracę. I niestety nie jest to prawdą. Dobrze napisane makro – owszem – potrafi automatyzować pracę, ale źle (lub złośliwie) napisane makro powoduje, że praca może być dużo trudniejsza lub niemożliwa. W kilkanaście sekund możemy przecież napisać makro, które po kliknięciu w komórkę wyświetli komunikat „Kliknąłeś komórkę”.
Czy zatem makra niosą jakieś ryzyko?
Pamiętajcie, że makro to fragment kodu napisanego w języku VBA (Visual Basic for Applications). Skoro jest to fragment kodu – może wykonywać bardzo różne czynności – włącznie z wysłaniem Waszych maili do osoby z wrogimi zamiarami, instalacją zewnętrznego oprogramowania czy kasowaniem plików na dysku (służy do tego wdzięczna instrukcja KILL). Jeśli zatem otrzymujecie plik, który może zawierać makra (np. .doc, .docm, .xls, .xlsm itd.) – zastanówcie się czy nadawca wiadomości jest zaufany i czy możecie pozwolić sobie na ryzyko włączenia takich plików.