Jednym z najbardziej interesujących i najmniej docenianych mechanizmów w pakietach biurowych są makra. Makra pozwalają zarówno zautomatyzować często powtarzane czynności, jak i wykorzystać OpenOffice.org jako interpreter czy wręcz “kombajn” do wszystkiego. Stosunkowo dobra jakość fitrów eksportu OpenOffice.org umożliwia użycie pakietu nawet do generowania w arkuszu raportów z danych tekstowych i np. wysyłania ich mailem do odpowiednich osób. Jest to dobre i tanie rozwiązanie, które można docenić po doświadczeniach z debugowaniem aplikacji komunikujących się z komponentami MS Office.
W niniejszym artykule zajmę się makrami w OpenOffice.org, próbując pokazać, jak je wykorzystać w praktyce. Ponieważ temat jest obszerny, a dostępna dokumentacja pozostawia wiele do życzenia, zaprezentowane wiadomości mogą okazać się przydatne.
Jednym z głównych elementów utrudniających zapoznanie się z funkcjonowaniem makr jest brak funkcji nagrywania, znanej z innych pakietów biurowych (jak choćby StarOffice 5.1/5.2). Aby więc zacząć korzystać z makr, niezbędne jest zrozumienie zasad funkcjonowania języka OpenOffice.org BASIC, który jest stosunkowo prosty i przypomina nieco Visual Basic.
Próba generalna
Najlepszą metodą prezentacji danego języka jest demonstracja prostego przykładu. Wcześniej jednak Czytelnikowi należy się kilka słów wyjaśnienia na temat IDE OpenOffice.org Basic. Przechodzimy do niego, wybierając z menu
Tools | Macro
(wpisujemy nazwę makra), a następnie
New
(lub Edit, jeśli makro już istnieje). Główne okno służy do edycji tekstu makr, menu powyżej zaś – do kompilacji, uruchamiania i odpluskwiania makr.
Czas na przykład: po uruchomieniu IDE w głównym oknie edycyjnym pojawi się kursor umieszczony między Sub NaszeMakro a
End Sub
, przy czym NaszeMakro może być dowolną nazwą makra, którą podaliśmy w oknie zarządzania makrami (
Tools | Macro
). Jesteśmy gotowi do wpisywania kodu, wygenerujmy więc tradycyjne powitanie:
Sub NaszeMakro
print ("Mamusiu, jak tu pięknie")
End Sub
Po naciśnięciu przycisku Run na ekranie powinno się ukazać okno dialogowe z dwoma przyciskami i podanym przez nas napisem. Możemy nacisnąć którykolwiek – w rezultacie wyjdziemy z “aplikacji”. Skrypty pozwalają też prowadzić dialog z użytkownikiem:
Sub NaszeMakro
odpowiedz = inputbox("Ile masz lat?", "Pytanie","")
print (odpowiedz)
End Sub
Prawda, że to łatwe? OpenOffice.org nie jest jednak prymitywnym programem do wyświetlania prostych wiadomości. Możemy posunąć się w naszych próbach nieco dalej i stworzyć własne okna dialogowe, co okazuje się czasem niezbędne przy tworzeniu interaktywnych makr (kto lubi przedzierać się przez dziesiątki okien z przyciskami OK i
Anuluj
?). Nie jest to wcale trudne, a po nabraniu wprawy utworzenie nowych, nawet złożonych okien dialogowych stanie się kwestią kilku minut.