Záznam maker v LibreOffice

LO.png Minule sme sa zaoberali základmi práce s makrami. Dnes sa pozrieme na to, ako zaznamenať makro bez toho, aby sme programovali.  

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.

Tabuľkový zošit Tabuľkový zošit

Z horného panelu vyberte Nástroje | Makra | Nahrať Makro.

Návod na spustenie nahravanie makra Návod na spustenie nahravanie makra

Zobrazí sa vám malý panel s nadpisom Nahrať Makro a s tlačítkom Zastaviť nahrávanie.

Okno nahrať Makro Okno nahrať Makro

Týmto nahrávanie makra začalo. Podľa zadania, ktoré sme si uviedli, zvoľte bunku E5.

04TabulkovyZosit.png Nastávanie bunky E5

V hornom paneli vyberte Formát | Bunky.

Návod na zmenu farby bunky Návod na zmenu farby bunky

Zobrazí sa vám okno Formátovať bunky.

Okno Formatovať bunky Okno Formatovať bunky

Vyberte záložku Pozadie, zvoľte farbu Zelenú a stlačíme OK.

Zmena farby bunky Zmena farby bunky

Zobrazí sa vám zelená bunka, vpíšte do nej Bunka E5 a kliknite na bunku E15.

Postup podľa zadania Postup podľa zadania

Kliknite na Zastaviť nahrávanie a zobrazí sa vám dialógové okno s názvom Makrá Libre Office Basic

Okno Makrá LibreOffice Basic Okno Makrá LibreOffice Basic

Zaujíma vás ľavé okno. Kliknite na súbor Bez_názvu1(alebo inak pomenovaný aktuálny tabuľkový súbor).

Okno Makrá LibreOffice Basic Okno Makrá LibreOffice Basic

Stlačte Nový modul a vygeneruje sa vám okno i s pomenovaním modulu, kam uložíte makro.

Okno Nový modul Okno Nový modul

Zvolíte Uložiť.

Uloženie makra Uloženie makra

Objaví sa vám okno s hláškou: Chcete prepísať makro 'main'? Kliknite Áno.

Hláška o prepisaní makrá main Hláška o prepisaní makrá main

Makro s názvom main je zaznamenané a uložené.

Prejdite na Nástroje | Makrá | Spustiť makrá.

Spustenie makrá Spustenie makrá

Vyberte tabuľkový súbor Bez_názvu1-Standard-Module1Spustiť.

Posledný krok před spustením makra 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.

Návod na ukážku kódu Basic Návod na ukážku kódu Basic

Zaujímate sa o ľavé okno a tlačítko Upraviť.

Posledný krok před ukážkou kódu Basic 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á 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á.

(Jako ve škole) Průměr: 3.06 | Hodnotilo: 16
 

Komentáře

user avatar Petr Valach
Odpovědět
Záznam makier
11. 11. 2015, 18:07:55
Klikací způsob vytváření maker je spíše "nouzovka" - a proto se těším na další díly seriálu, které budou jistě zase zaměřeny na psaní kódu.
user avatar Jirka
Odpovědět
Re: Záznam maker v LibreOffice
12. 11. 2015, 16:17:47
Naopak - mně to umožní makro případně použít, aniž bych se musel seznamovat se syntaxí a dalšími atributy příslušného jazyka. K tomu může ev. dojít později (pokud vůbec).

Profesí nejsem programátor a ačkoliv už jsem pár jednoduchých věcí v životě naprogramoval, tak to nejspíš nikdy nebude mým cílem a ani v tom nebudu excelovat.

Takže tak...a děkuji autorovi za článek.
user avatar Petr Valach
Odpovědět
Re:Re: Záznam maker v LibreOffice
12. 11. 2015, 22:54:00
Já jsem rád, že se do toho Eda pustil. A myslím, že jeho lidský přístup vyhoví všem.

Eda je nejen redaktorem OpenOffice, ale původem členem naší redakce (viz jeho medailonek), a odvádí vždy dobrou práci. A čtenáři ho mají rádi. Takže - držím palce :-)
user avatar Marto
Odpovědět
Záznam maker v LibreOffice
22. 01. 2016, 13:45:14
To v ktorom LO je moznost nahravania makier? V mojom Ubuntackom nic take nie je (verzia LO 4.2.8.2)
user avatar strepon
Odpovědět
Re:Záznam maker v LibreOffice
22. 01. 2016, 16:55:01
Ve 4.2 záznam je - máte ho povolený v Nástroje - Možnosti - LibreOffice - Pokročilé - Povolit záznam maker?
user avatar Marto
Odpovědět
Re:Re:Záznam maker v LibreOffice
22. 01. 2016, 20:50:54
Funguje. To keby som vedel skor. Moj zivot by bol o kus krajsi.
user avatar vašek
Odpovědět
Záznam maker v LibreOffice
25. 02. 2016, 12:55:20
Dobrý den, před hodně let jsem vytvářel makra Quattro Pro. Abych mohl upravovat makra, potřebuji více znát , ale studovat celý je na mne mnoho. Nešlo by k jednotlivým řádkům napsat co ten řádek znamená ( např. zapíše hodnotu do buňky A1)
Jak se dá změnit absolutní buňka na " posun do leva o 2 pole). Dále přerušení makra v určité buňce " A10" vložit čislo "20" a pokračovat dolu na "B8" přerušit makro, vložit číslo "15" a pokračovat o 2 buňky vpravo "B10" dále jít na "C8" vyhodnotit vstup ( není číslo ) ukončit makro.
Děkuji Vám za odpověď
user avatar neutr
Odpovědět
Re:Záznam maker v LibreOffice
25. 02. 2016, 15:49:09
Vašku ono by Vám to bylo jasné hned jakmile byste si udělal svoje vlastní pokusy se záznamníkem. jednotlivé příkazy makra které nahrajete jsou odděleny pomocí REM s linkou čárek takto :
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
.......tohle je deklarace počtu sub argumentů 0 = 1
args1(0).Name = „ToPoint“
args1(0).Value = „$E$5“
.......tohle je specifikace argumentů(0)
dispatcher.executeDispatch(document, „.uno:GoToCell“, „“, 0, args1())
.......tohle je příkaz k provedení procedury podle parametrů
- tedy GoToCell což znamená "BěžNa" -- argument E5
rem ----------------------------------------------------------------------
dim args2(4) as new com.sun.star.beans.PropertyValue
.......tohle je deklarace 5-ti sub argumentů
args2(0).Name = „BackgroundPattern.Transparent“
args2(0).Value = false
....... 0 = 1
args2(1).Name = „BackgroundPattern.BackColor“
args2(1).Value = 32768
....... 1 = 2
args2(2).Name = „BackgroundPattern.URL“
args2(2).Value = „“
....... 2 = 3
args2(3).Name = „BackgroundPattern.Filtername“
args2(3).Value = „“
.......3 = 4
args2(4).Name = „BackgroundPattern.Position“
args2(4).Value = com.sun.star.style.GraphicLocation.NONE
....... 4 = 5
dispatcher.executeDispatch(document, „.uno:BackgroundPattern“, „“, 0,args2())
.......provede se barva pozadí podle parametrů
rem ----------------------------------------------------------------------
Bohu žel v článku jsou nesprávně umístěny řádky, ale když byste si to opravdu vyzkoušel - pochopíte co je co. - Zejména když už nějakou zkušenost máte a víte co znamenají anglické výrazy.

Takže si nahrajte 1 krok - třeba šipkou dolů a uložte pod jménem "o jednu dolů", následně totéž nahoru, další makro vlevo - pak vpravo a tak dál. Každý úkon může mít své vzorové makro a už jen z vlastného názvu budete vědět co to znamená. Pak začněte spojovat více maker respektive příkazů. Když si pak pohrajete s argumenty budete bědět téměř vše co potřebujete.

Kód je rozdělem komentáři aby to pochopil každý začátečník - pokud je tedy schopen dovodit že například GoToCell = Go to cell = česky běž na buňku. Když ne tak nemá ani cenu popisovat co to dělá :-(

Mimochodem já mám úplnou instalaci Quattro Pro (rok 96) z nějaké výstavy, ale programovat jsem začal Lotusu 123 - byl lokalizovaný.
user avatar vašek
Odpovědět
Záznam maker v LibreOffice
25. 02. 2016, 18:02:19
Moc děkuji za odpověď. Budu zkoušet. Mohu se na Vás obrátit ,když si nebudu vědět dál ?
Vašek

Odpovědět

 

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu.

 
Eduard Boldižár

Eduard Boldižár

Som redaktorom stránky astrotech.cz. Mám 24 rokov. Čas trávim v IT škole. Medzi moje záľuby patrí astronómia, sci-fi literatúra a programovanie.

 
 
 
woo jaw demo hz