VBA nadal daje dużą kontrolę nad plikiem otwartym na komputerze użytkownika, dlatego w wielu firmach pozostaje częścią codziennej pracy. Nie zawsze pasuje jednak do procesów prowadzonych w przeglądarce, wspólnym pliku albo między kilkoma usługami działającymi bez udziału człowieka.
Czym jest VBA?
VBA (Visual Basic for Applications) to język programowania dostępny w aplikacjach Microsoft Office, takich jak Excel, Word czy Access. Służy do automatyzowania powtarzalnych zadań, tworzenia makr, formularzy i własnych funkcji.
W Excelu może między innymi przetwarzać dane, generować raporty, modyfikować arkusze czy reagować na określone zdarzenia. Jego zaletą jest bezpośrednia współpraca z aplikacją działającą na komputerze użytkownika.
W skrócie
- VBA obsługuje formularze, zdarzenia i dokumenty lokalne.
- Automatyzacja chmurowa lepiej pasuje do pracy w przeglądarce i procesów między usługami.
- Przy danych osobowych znaczenie mają ograniczone uprawnienia, kontrola dostępu i sposób zarządzania automatyzacją.
Kiedy lokalne VBA daje przewagę nad chmurą?
Największą zaletą VBA jest bezpośrednia praca z aplikacją działającą na komputerze. Makro może sterować elementami dokumentu, reagować na zdarzenia, tworzyć formularze i wykonywać kolejne operacje bez przenoszenia pliku do zewnętrznej usługi. Takie rozwiązanie sprawdza się szczególnie wtedy, gdy sam dokument jest ważną częścią procesu.
Wyobraź sobie plik, który pobiera dane z wielu arkuszy, porządkuje wyniki, nakłada formatowanie i tworzy pliki PDF. Jeśli raport korzysta również z formularzy lub zdarzeń skoroszytu, lokalne makro pozwala połączyć te elementy w jeden proces. Istotna staje się wtedy kontrola nad układem dokumentu i kolejnością wykonywanych operacji.
Takie podejście ma jednak ograniczenia. Działanie makra może zależeć od struktury arkusza, wersji aplikacji, ustawień zabezpieczeń i środowiska użytkownika. Rozwiązanie przygotowane na jednym komputerze nie zawsze zachowa się identycznie u innych osób.
Dlatego przed rozbudowaniem makra warto ocenić jego znaczenie dla całego procesu. Jeśli skrypt wykonuje jedną prostą czynność, jego utrzymanie zwykle nie stanowi dużego problemu. Przy bardziej rozbudowanych rozwiązaniach rośnie natomiast znaczenie dokumentacji, przekazania wiedzy i osoby odpowiedzialnej za dalszy rozwój.
VBA a automatyzacja w przeglądarce i chmurze
Jeżeli kilka osób pracuje nad wspólnym plikiem w przeglądarce, warto rozważyć rozwiązanie przeznaczone do środowiska internetowego. Skrypty oparte na języku TypeScript mogą automatyzować skoroszyty, uruchamiać się ręcznie i współpracować z przepływami pracy. Nie muszą być przy tym zależne od komputera konkretnego użytkownika.
Ma to znaczenie przy cyklicznych zadaniach, powiadomieniach i procesach łączących kilka usług. Automatyzacja może zostać przekazana innym członkom zespołu, działać według ustalonego schematu i być częścią większego procesu. W takim środowisku ważniejsza od bezpośredniej kontroli nad aplikacją desktopową staje się powtarzalność i dostępność rozwiązania.
W praktyce VBA pozostaje dobrym wyborem, gdy zadanie wymaga pracy bezpośrednio na lokalnym dokumencie, natomiast automatyzacja chmurowa lepiej odpowiada procesom opartym na współdzielonych plikach, wielu urządzeniach i integracji różnych usług.
Chmura nie oznacza jednak automatycznie prostszego utrzymania. Taki proces również wymaga prawidłowych połączeń, uprawnień i konfiguracji. Zmiana hasła, wygaśnięcie zgody czy odebranie dostępu do pliku może przerwać działanie automatyzacji. Dlatego warto wcześniej ustalić właściciela procesu oraz sposób obsługi błędów.
Co wziąć pod uwagę przed wyborem?
Funkcje narzędzia to tylko jeden z elementów decyzji. Równie istotne są środowisko pracy, sposób utrzymania, dostępność osoby odpowiedzialnej za rozwiązanie oraz potrzeby całego zespołu.
Jeżeli automatyzacja ma działać na jednym komputerze i obsługiwać rozbudowany dokument, lokalne VBA może być wystarczające. Jeżeli natomiast proces ma być dostępny dla wielu osób, uruchamiać się według harmonogramu lub łączyć dane z kilku usług, przewagę może mieć rozwiązanie chmurowe.
Warto również zastanowić się nad przyszłością rozwiązania. Kto będzie je modyfikował? Czy inna osoba będzie w stanie zrozumieć jego działanie? Co stanie się po zmianie struktury danych? Odpowiedzi na te pytania często mają większe znaczenie niż sama liczba funkcji dostępnych w danym narzędziu.
Bezpieczeństwo automatyzacji
Niezależnie od wybranego rozwiązania należy uwzględnić zasady bezpieczeństwa obowiązujące w organizacji. Przy makrach szczególne znaczenie mają zaufane źródło, podpis cyfrowy, ograniczone uprawnienia i kontrola zmian. Nie warto obniżać globalnie poziomu zabezpieczeń tylko po to, aby uruchomić pojedynczy skrypt.
Przed uruchomieniem automatyzacji ustal, jakie dane przetwarza, kto może ją uruchamiać i kto ma prawo ją modyfikować. Przy danych osobowych dostęp powinien być ograniczony do informacji niezbędnych do realizacji określonego celu.
W przypadku rozwiązań chmurowych trzeba dodatkowo kontrolować dostęp do plików, usług i połączeń wykorzystywanych przez proces. Jasne określenie właściciela automatyzacji ułatwia zarówno reagowanie na błędy, jak i odebranie uprawnień, gdy przestają być potrzebne.
Jak wybrać odpowiednie rozwiązanie?
Nie ma jednej odpowiedzi, która sprawdzi się w każdym przypadku. Lokalne VBA ma przewagę wtedy, gdy najważniejsza jest kontrola nad dokumentem, formularzami, zdarzeniami i działaniem aplikacji na konkretnym komputerze.
Automatyzacja chmurowa będzie lepszym kierunkiem, gdy proces wymaga współdzielenia, pracy na wielu urządzeniach, harmonogramów lub połączenia kilku usług.
Najlepszym punktem wyjścia nie jest więc pytanie, które narzędzie ma więcej możliwości. Najpierw opisz proces, jego użytkowników, dane i sposób uruchamiania. Dopiero na tej podstawie wybierz technologię, która będzie łatwa do utrzymania również wtedy, gdy zmieni się zespół, struktura danych albo sposób pracy.

