Nahrávání a spouštění maker

programovani.png V tomto díle si povíme o funkci Zaznamenat makro. Záznamník není dokonalý, ale je nedoceněným nástrojem. Nevkládejte do něj přehnaná očekávání, ale pro jednoduché operace se stane vítaným pomocníkem.  

POZOR: Uživatelé LibreOffice si musí tuto funkci nejprve povolit ve volbách (stejně jako jste nastavovali povolení maker). Nástroje | Volby | LibreOffice | Obecné pod nastavením Roku (dvě číslice) je volba „Enable experimental (unstable) features“. Po této volbě již bude záznamník funkční.

Nejprve pár slov

Nahrání makra sice není čisté programování (jde o nahrání sledu příkazů, které jsou po spuštění zopakovány), ale i tak mohou ušetřit spoustu práce, a pokud máte úkony, které často opakujete, je toto velmi praktická volba.

Záznamník maker v OpenOffice.org má samozřejmě určitá omezení:

  1. Například nahrané makro funguje pouze v jednom dokumentu (nelze například nahrát sled příkazů v jednom dokumentu, zkopírovat hodnoty, otevřít další dokument a hodnoty vložit), ale je možné využít postup v bodě č. 2.
  2. Je lepší nepoužívat nahrávání na sled delších příkazů, ale raději příkazy rozdělit na více maker, která lze později spojit (vyvoláním dalšího makra, na konci příkazů).
  3. Nahraná makra jsou po spuštění náročnější na provádění příkazů než klasicky naprogramovaná makra – při klasickém programování lze totiž všechny příkazy provést jednodušeji a efektivněji.
  4. Musíte mít nainstalovaný programovací jazyk JAVA (JRE), protože jinak se některé příkazy nebudou provádět korektně.

Pro většinového uživatele ale přináší i výhody:

  1. Není třeba se učit programování.
  2. Nahrání trvá chvilku.
  3. Opakované úkony lze touto cestou výrazně zjednodušit a zrychlit.

Nahrané makro můžete dále upravit – lze například vložit podmínku, kdy má být makro spuštěno apod. Nedoporučuji příliš zasahovat do základu makra, je možné, že si pak příkazy rozhodíte a neprovede se vše, co jste požadovali. Až budete znát základy programování, ukážeme si, jak je možné takové makro(a) upravit a zrychlit jejich průběh. Také je nutné dát si při úpravě makra pozor na deklaraci proměnných – tomu se ale bude věnovat samostatná kapitola.

Nahrávač automaticky a vždy deklaruje proměnou document a dispatcher jako objekty. Vezme aktuální dokument a přiřadí k němu dispatcher (něco jako „výměník“). Změny jsou provedeny ve výměníku a poté příkazem vloženy do dokumentu.

Nahrávání makra

K nahrání se dostanete přes volby Nástroje | Makra | Zaznamenat makro. Po této volbě se zobrazí v levém horním rohu malé dialogové okno.

Detail dialoguDetail dialogu

Od této chvíle se vše, co provedete, nahrává. Nyní si můžete zaznamenat sled příkazů, které chcete, aby poté byly automatizovány. Pokud se v příkazech spletete a stisknete jiný příkaz, je lepší záznam ukončit a zopakovat. Samozřejmě je možné se vrátit krokem zpět, ale nikdy dopředu, protože nevíte, zda bude zápis makra v pořádku. Když máte hotovo, zvolte zastavit nahrávání.

Zobrazí se dialog na uložení do knihovny maker:

Dialog pro uložení makraDialog pro uložení makra

Pokud chcete, aby se makro spouštělo pouze v jediném dokumentu, zvolíte jeho umístění do knihovny se jménem, pod kterým je dokument uložen (v tomto případě „Bez Názvu 1“). Tam si musíte vytvořit nový modul (standardně pojmenovaný Module a číslo modulu – můžete název ponechat, nebo si zadat svůj. Pozor, nepoužívejte interpunkci a místo mezer používejte podtržítko – například moje_makro).

Pojmenování nového moduluPojmenování nového modulu

Naopak, pokud má makro fungovat ve všech dokumentech, zvolte knihovnu „Moje makra“ a v ní modul „Standard“. Když máte vybráno, kam uložit, zvolte název makra (tady pozor: do názvu makra se automaticky přednastavují názvy maker, které jsou již uloženy).

Příklad nahraného makra na tisk:

sub tisk
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--------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Print“, "", 0, Array ())
end sub

Toto makro otevře tiskový dialog tak, jak jej znáte po stisknutí [CTRL+p].

Všechna nahraná makra mají podobnou strukturu. Nejprve se definují proměnné (document a dispatcher), následuje přiřazení proměnných k aktuálnímu dokumentu (document) a vytvoření „vedlejšího“ pomocného dokumentu (dispatcher). Následuje samotný příkaz, kterým pomocí dispatcher u ovládáte dokument jako takový. Řádky začínající na REM jsou určeny pro vysvětlivky (viz rem define variables – rem definování proměnných).

TIP: Pokud budete chtít spojit více nahraných maker do jednoho, stačí před end sub napsat název makra, které chcete vyvolat. Platí, že pokud je makro ve stejném modulu, stačí jeho název. Pokud se ale makro nachází v jiném modulu, musíte určit i cestu. Například mám makro na vymazání určitých hodnot a v jiném modulu makro na tisk. Stačí tedy před end sub zapsat module2.tisk (pokud je makro tisk uloženo v modulu2). Jinak by stačil zápis tisk.

Spouštění makra

Makra mají mnoho možností, jak je spustit. Od událostí dokumentu (např. po tisku, uložení…) přes vlastní ikonku v nástrojové liště, vlastní volbu v nabídkách až po klávesové zkratky a formulářové prvky. Základní cesta je přes Nástroje | Makra | Spustit makro:

Volba Spustit makroVolba Spustit makro

Tato cesta je zároveň nejméně pohodlná.

Vyjma formulářových prvků se makra přiřazují přes nabídku Nástroje | Přizpůsobit:

Přiřazení maker do systému OpenOffice.orgPřiřazení maker do systému OpenOffice.org

Na jednotlivých záložkách (Nabídka, Klávesnice, Panely nástrojů a Události) můžete přiřadit makro k volbě, která nejvíce odpovídá vašim požadavkům. Takto si přiřaďte makra, která používáte opravdu často.

Přiřazení makra k jednotlivým funkcímPřiřazení makra k jednotlivým funkcím

Na kartě Klávesnice pozor na klávesové zkratky dané systémem, jejich přepsání může komplikovat práci. Je lepší vybírat neobsazené zkratky, nebo přepsat ty, o kterých jste si stoprocentně jisti, že je nevyužijete.

Na kartě Události spojujete makro s určitou událostí. Máte možnost si určit, zda se má makro spouštět vždy pro vybraný dokument, nebo pro všechny dokumenty zpracovávané v OpenOffice.org. To je volba Uložit do v levé spodní části dialogu.

Přiřazení maker k formulářovým prvkům si podrobně ukážeme v díle o dialogových oknech.

Základní přizpůsobení systému máte hotové. Jak makro nahrát, uložit a spustit, již také víte. V další části se budeme věnovat základům programovacího jazyka StarOffice Basic. Základy se mohou zdát nezáživné, ale je nutné jimi projít. Horní patro budovy také nepostavíte bez přízemí. Jak ale budeme v naší stavbě stoupat výše, dostaneme se již k přímému programování jednoduchých maker.

(Jako ve škole) Průměr: 1.31 | Hodnotilo: 13
 

Komentáře

user avatar zoltankomárom
Odpovědět
Nahrávání a spouštění maker
4. 06. 2012, 10:11:21
Vie mi niekto poradiť?

Mám W7 Oo 3.4 Apache a neviem zadať cestu, resp. Oo nenáje žiadne JRE; ( mám nainštalovaných 5 verzií), takže je problém so spúšťaním makier a aj s vytvorením tabuľky Base. pôvodne som pracoval v Oo 3.2.1, kde bol ten istý problém. Poradili mi preinštalovať Oo ale to nepomohlo problém zostal.

Za rady ďakujem.

Zoltán
user avatar Daniel Sedláček
Odpovědět
Re:Nahrávání a spouštění maker
4. 06. 2012, 11:14:55
Zkuste následující odkaz

http://forum.openoffice.cz/viewtopic.php?id=1723

měl by pomoci

;o)
user avatar Tom78
Odpovědět
Nahrávání a spouštění maker
8. 09. 2013, 20:18:07
Mám problém s Libreoffice potřebuji udelat tlačítko které při stisknutí přepne na jiný list. Tlačítko vytvořím, makro nahraji a připojím k tlačítku
vše mě funguje, ale když otevřu dokument na jiném PC s libreoffice tak nic nefunguje. co dělám špatně??
user avatar j-pastierik
Odpovědět
Re:Nahrávání a spouštění maker
9. 09. 2013, 04:24:35
Nemáte tam to makro.
user avatar Franta
Odpovědět
Nahrávání a spouštění maker
8. 03. 2015, 16:38:13
dobry den
Jsem nováček v Libreoffice 4.4.1.2,nefunguje klávesnice jak spustím nahrávaní makra.Dále mám další problém když spustím Do Until....loop s příkazem posun kurzoru
o jednu buňku dole tak při druhém průchodu nahlásí chybu.
předem děkuji za radu Franta

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.

 
Daniel Sedláček

Daniel Sedláček

Amatérsky se věnuji programování maker od podzimu 2010.
Aktivní jsem na fóru od ledna 2011.
Od července 2011 spolupracuji i jako moderátor fóra.

Využívám pouze OpenOffice.org (LibreOffice nemám nainstalován).

 
 
 
woo jaw demo hz