Vytvorenie makra pomocou záznamu makier
Chcete rýchlo vytvoriť makro bez znalosti programovania? Využijeme záznam makier. Je to funkcia, ktorá zaznamenáva každú zmenu napr. pri práci s tabuľkami a vygeneruje výsledný Basic kód.
Na ukážku si vytvoríte makro pomocou záznamu makier. Činnosť makra bude, že po spustení vyberie bunku E05, zmení farbu pozadia bunky, do bunky zapíše text a nakoniec aktivuje bunku E15.
Najprv otvorte tabuľkový zošit, resp. LibreOffice Calc. Aktuálna pozícia po otvorení Tabuľkového zošitu je A1.
Z horného panelu vyberte Nástroje | Makra | Nahrať Makro.
Návod na spustenie nahravanie makra
Zobrazí sa vám malý panel s nadpisom Nahrať Makro a s tlačítkom Zastaviť nahrávanie.
Týmto nahrávanie makra začalo. Podľa zadania, ktoré sme si uviedli, zvoľte bunku E5.
V hornom paneli vyberte Formát | Bunky.
Zobrazí sa vám okno Formátovať bunky.
Vyberte záložku Pozadie, zvoľte farbu Zelenú a stlačíme OK.
Zobrazí sa vám zelená bunka, vpíšte do nej Bunka E5 a kliknite na bunku E15.
Kliknite na Zastaviť nahrávanie a zobrazí sa vám dialógové okno s názvom Makrá Libre Office Basic
Zaujíma vás ľavé okno. Kliknite na súbor Bez_názvu1(alebo inak pomenovaný aktuálny tabuľkový súbor).
Stlačte Nový modul a vygeneruje sa vám okno i s pomenovaním modulu, kam uložíte makro.
Zvolíte Uložiť.
Objaví sa vám okno s hláškou: Chcete prepísať makro 'main'? Kliknite Áno.
Makro s názvom main je zaznamenané a uložené.
Prejdite na Nástroje | Makrá | Spustiť makrá.
Vyberte tabuľkový súbor Bez_názvu1-Standard-Module1 a Spustiť.
Posledný krok před spustením makra
Po spustení mate zelenú bunku E5 i s textom a aktuálne zvolenú bunku E15. Takto si môžete tvoriť makrá, ktoré vám ušetria čas.
Zaznamenanie makier je dobrá funkcia, ale pre profesionálnu prácu často obmedzujúca. Záznam makier nie je nič iné, len sledovanie toho, čo sa deje napr. s tabuľkou. Plné využitie makier nám umožňuje znalosť programovania v jazyku Basic upraveného pre LibreOffice.
Aj záznam makier má svoj kód. Ak chcete vidieť kód napísaný v Basicu práve zaznamenaného makra, tak zvoľte Makrá | Usporiadať makrá | OpenOffice Basic.
Zaujímate sa o ľavé okno a tlačítko Upraviť.
Posledný
krok před ukážkou kódu Basic
Vygeneruje sa nám kód makra resp. procedúry.
REM ***** BASIC ***** sub Main rem ---------------------------------------------------------------------- rem define variables dim document as object dim dispatcher as object rem ---------------------------------------------------------------------- rem get access to the document document = ThisComponent.CurrentController.Frame dispatcher = createUnoService(“com.sun.star.frame.DispatchHelper“) rem ---------------------------------------------------------------------- dim args1(0) as new com.sun.star.beans.PropertyValue args1(0).Name = „ToPoint“ args1(0).Value = „$E$5“ dispatcher.executeDispatch(document, „.uno:GoToCell“, „“, 0, args1()) rem ---------------------------------------------------------------------- dim args2(4) as new com.sun.star.beans.PropertyValue args2(0).Name = „BackgroundPattern.Transparent“ args2(0).Value = false args2(1).Name = „BackgroundPattern.BackColor“ args2(1).Value = 32768 args2(2).Name = „BackgroundPattern.URL“ args2(2).Value = „“ args2(3).Name = „BackgroundPattern.Filtername“ args2(3).Value = „“ args2(4).Name = „BackgroundPattern.Position“ args2(4).Value = com.sun.star.style.GraphicLocation.NONE dispatcher.executeDispatch(document, „.uno:BackgroundPattern“, „“, 0, args2()) rem ---------------------------------------------------------------------- dim args3(0) as new com.sun.star.beans.PropertyValue args3(0).Name = „ToPoint“ args3(0).Value = „$E$5“ dispatcher.executeDispatch(document, „.uno:GoToCell“, „“, 0, args3()) rem ---------------------------------------------------------------------- dim args4(0) as new com.sun.star.beans.PropertyValue args4(0).Name = „StringName“ args4(0).Value = „Bunka E5“ dispatcher.executeDispatch(document, „.uno:EnterString“, „“, 0, args4()) rem ---------------------------------------------------------------------- dim args5(0) as new com.sun.star.beans.PropertyValue args5(0).Name = „ToPoint“ args5(0).Value = „$E$15“ dispatcher.executeDispatch(document, „.uno:GoToCell“, „“, 0, args5()) end sub
Sub a end sub čiže začiatok a koniec procedúry už poznáte, taktiež aj kľúčové slovo rem, kam píšete v riadku poznámky resp. návod pre druhých programátorov, aby sa lepšie orientovali v kóde.
Jazyk Basic pre edíciu LibreOffice je objektovo-orientovaný jazyk a jako motivácia pre vás čitateľov, že po sérii článkov o makrách už budete schopný chápať i takéto zložité kódy.
Uloženie záznamu makra do knižničného kontajnera Moje makra Prvé makro na základe záznamu, ktoré ste vytvorili je uložené v knižničnom kontajneri dokumentu. Ak zmažete dokument, zmažete aj makro.
Ukážeme si, jako uložiť makro do knižničného kontajnera Moje makra, ktoré je k dispozícii v rámci celého LibreOffice.
Opakujte vyššie uvedený postup a zastavte sa při uložení makier.
Miesto Bez_názvu1 zvoľte Moje makrá-Standard-Module1 a vyberte Main
Uložiť do knižničného kontajneru Moje
makrá
Presvedčte sa, či je uložené makro v kontajneri Moje makrá. Potom zmažte tabuľkový súbor a vytvorte iný. Makro nájdete uložené stále v Moje makrá.