Blog

Wstępniaczek do Office Scripts

Krótkie wprowadzenie do Office Scripts, czyli narzędzia pozwalającego automatyzować zadania w Excelu dla przeglądarek internetowych.

Wstępniaczek do Office Scripts

Skoro migrację mamy już za sobą pora wreszcie coś napisać na blogu, ale na szczęście nie będzie to relacja z trudów, które towarzyszą zazwyczaj takim akcjom, bo w moim przypadku za bardzo opowiadać nie ma o czym. Najwięcej zdrowia i czasu na szczęście kosztowało mnie przygotowanie nowego tematu do Ghosta, który odtąd będzie mnie wspierał we własnym grafomańskim szale. W związku z tym dzisiaj po prostu wrócimy do tego, na czym w pewnym sensie skończyliśmy ostatnio, czyli na taper bierzemy znowu Excela. Tym razem nie będzie jednak o Pythonie, ale bardziej “koszernych” - bo oficjalnych - narzędziach, jakie udostępnił swoim klientom Microsoft, a dokładniej: chodzi o stosunkowo nowe API do aplikacji MS Office’a.

Tematowi temu poświęciłem już jeden wpis, więc w tym miejscu nie będę się powtarzał i co najwyżej mogę odesłać do lektury tamtego wpisu. Przypomnę jednak, że do czynienia mamy tak naprawdę z dwiema pod wieloma względami różnymi koncepcjami ubogacenia naszej pracy, ale w obu z nich wykorzystywany jest JavaScript (czy raczej TypeScript). Choć osobiście nie jestem zachwycony akurat takim wyborem języka programowania (choć bez dwóch zdań to i tak krok do przodu w stosunku do Visual Basica), tym niemniej rozumiem, czemu tak się prawdopodobnie stało, tak z technologicznej i socjologicznej perspektywy. Jeśli chodzi o te drugie, to po prostu JS (TypeScript jest autorską próbą Microsoftu cywilizowania JS) jest obecnie najpopularniejszym narzeczem wśród programistów czy takich, którzy się za nich uważają. A skoro mamy do czynienia ze swoistą nadpodażą ludzi o tego rodzaju kompetencjach, to warto spróbować jakoś to wykorzystać.

Ważniejszy jest jednak ten drugi aspekt, który w swojej ignorancji określiłem jako “technologiczny”. Tutaj niestety muszę powtórzyć to, o czym pisałem wcześniej: Office Add-ins, bo o nich tutaj mowa, mają być w zamyśle twórców czymś na wzór aplikacji internetowych z gatunku SPA (Single Page Application) i w tym zakresie JavaScript nie ma właściwie żadnej konkurencji. Szkoda trochę, że inżynierowie Microsoft - skoro i tak tworzone są dwa osobne API - w przypadku drugiego rozwiązania (Office Scripts) nie pokusili się o wybór skryptowych języków programowania, które trochę lepiej nadają się do pracy z danymi.

Skoro już sobie ponarzekałem, jak to mam w zwyczaju, pora przejść do bardziej treściwej części wpisu, czyli do tytułowego Office Scripts. Niestety znowu będę musiał po trosze powtarzać, to o czym pisałem, ale zakładam, że nie każdemu będzie się chciało sięgnąć do wcześniejszego tekstu. Otóż Office Scripts w odróżnieniu od Office Add-Ins dużo bardziej przypomina coś co od lat znane jest pod nazwą Makro. Rzekłbym, że jest to jego webowy odpowiednik. Kompetentny użytkownik VBA wcześniej czy później się przekona na własnej skórze, że mistrzostwo, do jakie dochodził przez lata w tym zakresie, na niewiele się zda w przypadku webowej wersji Office’a. Zdaje się, że w przeglądarce da się uruchomić Makro, które zostało dołączone wcześniej do skoroszytu, choć sam nie miałem okazji tego sprawdzić, to o utworzeniu nowego skryptu VBA w webowej rzeczywistości może zapomnieć. A jeśli liczy, że to się zmieni w najbliższych latach, to obawiam się, że mocno się przy tym rozczaruje. Dlatego porzućcie wszelką nadzieję, którzy do sieci wchodzicie.

Office Scripts jest taką właśnie alternatywą w przypadku - póki co - przeglądarkowych wersji Excela i Spółki. W zasadzie spełnia tę samą funkcję, co Makro, czyli ma służyć do automatyzacji upierdliwych i powtarzających się czynności, które użytkownik realizuje przy pomocy tych aplikacji. Oczywiście osoby kreatywne w miarę potrzeb, możliwości oraz skrzywienia psychicznego mogą przy ich pomocy (skryptów) tworzyć rozwiązania dalece wykraczające poza proste manipulowanie obiektami typowymi dla pakietu MS Office, ale takie kliniczne przypadki zostawmy specjalistom z zakresu nauk medycznych.

Dlatego od razu należy uspokoić wszystkich zainteresowanych, że znana i lubiana funkcjonalność, polegająca na “nagrywaniu” czynności wykonywanych w arkuszu kalkulacyjnym, jest w przypadku Office Scripts jak najbardziej dostępna, choć rzecz jasna pod nieco inną nazwą (“Zarejestruj akcję”). Należy jej szukać w sekcji “Automatyzacja”, tak jak zostało to pokazane na załączonym obrazku.

Trzeba przyznać, że to fajne rozwiązanie dla kogoś kto nie chce pobrudzić rąk kodowaniem lub dopiero zaczyna swoją przygodę ze skryptami dla Office’a. Rzecz jasna kod tak utworzony nie musi być pod każdym względem optymalny, a pewnych działań nie da się przy jego pomocy osiągnąć, ot chociażby dodania sterowania przepływem działania, czyli dodawania pewnych warunków czy działania w pętli. Na potrzebę takich bardziej złożonych zadań do dyspozycji mamy “Edytor kodu”.

W tym momencie otwiera się przed nami wreszcie możliwość “kodzenia”, a przede mną zakończenia dzisiejszego wpisu, gdyż nie ma większego sensu ruszać pók co dalej. W kolejnym wpisie napiszę trochę o ogólnej filozofii tej formy pracy z Excelem i napiszemy pierwszy prosty skrypt.