Malá makra v OpenOffice.org

programovani.png Nedílnou součástí balíku OpenOffice.org i programů z něj vycházejících, je Editor maker. Pro běžného uživatele jde o téměř neznámou část balíku a to přes to, že se může stát velmi silným pomocníkem při práci se všemi jeho částmi.  

Programování maker nemusí být vyhrazeno pro uzavřenou skupinu programátorů. Vlastní makro si může napsat každý, stačí znát základní postupy. Bohužel většina dokumentace k makrům je v anglickém jazyce. Tento seriál si bere za cíl seznámit uživatele se základy programování a je zaměřen na modul Calc a práci s ním.

Seriál vychází z uživatelské příručky StarOffice - Basic Programmer's Guide.

(Jako ve škole) Průměr: 1.44 | Hodnotilo: 9
 

Komentáře

user avatar Petr
Odpovědět
Malá makra v OpenOffice.org
12. 11. 2012, 08:57:35
Dobrý den, při práci s makry ve VBA jsem měl problém a našel jsem u vás dobře popsanou odpověď. Mohl bych se prosím zeptat, nakolik jsou makra v Calcu kompatibilní s MS Office - Excel? Děkuji za odpověď i dobrý popis.
user avatar Daniel Sedláček
Odpovědět
Re:Malá makra v OpenOffice.org
12. 11. 2012, 18:04:59
Basic a VBA jsou kompatibilní v omezené míře. Spíše spustíte kód VBA v OO nebo LO než opačně. Pravděpodobně budou shodné příkazy fungovat i pod VBA, ale při práci s objekty skončí makro nejspíše chybou. O něco lepší podporu VBA má prý LibreOffice.

Zkuste prozkoumat následující odkazy:

http://www.business-spreadsheets.com/vba2oo.asp

http://documentation.openoffice.org/HOW_TO/various_topics/VbaStarBasicXref.pdf

http://wiki.openoffice.org/wiki/VBA


;o)
user avatar K.L.
Odpovědět
Malá makra v OpenOffice.org
4. 12. 2012, 11:31:30
Děkuji za výborný úvod do maker. KL
user avatar Ludvík Trnka
Odpovědět
Malá makra v OpenOffice.org
30. 12. 2014, 22:25:53
Díky za úžasné návody, už pár let se jimi řídím. Velmi mi zde ale chybí základní práce s obrázky - i ty jsou bohužel v sešitech obsaženy. Až po probádání celého internetu a získání jakéhosi přehledu v téhle oblasti jsem si zde všimnul úvodního odstavce z čehože tento seriál pochází a hle v Basic Programmer's Guide je práce s obrázky jakž takž popsaná. Tož tak. Každopádně ale děkuji, bez těchto článků v češtině bych úplně vedle.
user avatar Martin
Odpovědět
Malá makra v OpenOffice.org
24. 02. 2015, 15:49:32
Dobrý den
Narazil jsem na chybové hlášení "proměnná objektu není nastavena" na řádku inits = ...atd (stejně tak na ř. last_insert =..., pokud předchozí označím jako REM). Přes všechnu snahu to nedokážu eliminovat, podle všech příruček a návodů nevidím chybu v dimenzování proměnných. Prosím o radu, co je špatně. Smyslem makra je vložit prázdný řádek na konec databáze v prvním listu (později tam chci zkopírovat řádek z databáze v listu_2), zvýšit a zapsat číslo aktuálního řádku do pomocné buňky v listu_3, přičemž v prvním spuštění chci iniciovat počáteční hodnoty aktuálního řádku (=36) a návěští INITS o prvním iniciačním spuštění)
Děkuji

Sub Fondy_uctovani
rem ---dimenzovani---

Static fondy as object
static strana_1 as object
static strana_2 as object
static Strana_3 as object
Fondy = thisComponent Rem název projektu
Strana_1 = fondy.sheets(1) Rem pohledová tabulka
Strana_2 = fondy.sheets(2) Rem databáze
Strana_3 = fondy.sheets(3) Rem pomocné proměnné

sub Vloz_novy_radek_pro_zaznam
rem---
static last_insert as object
dim inits as object
inits = Strana_3.getCellByPosition(0,0)
last_insert = Strana_3.getCellByPosition(1,0)
if inits.value = 0 then
last insert.value = 36
inits.value = 1
else
strana_1.rows.insertByIndex(last_insert.Value,1)
last_insert.Value = last_insert.Value + 1
endif
end sub
user avatar lp.
Odpovědět
Malá makra v OpenOffice.org
25. 02. 2015, 00:19:53
Používej raději normální diskusi.
Chyby: K čemu je static??? Dále
neukončená procedura, neviditelné proměnné, chybné jméno, pravděpodobně chybně číslované listy.


Chtěl jsi něco takového??

dim fondy as object
dim strana_1 as object
dim strana_2 as object
dim Strana_3 as object

sub main
Fondy_uctovani
Vloz_novy_radek_pro_zaznam
end sub

Sub Fondy_uctovani
rem ---dimenzovani---
Fondy = thisComponent Rem název projektu
Strana_1 = fondy.sheets(1) Rem pohledová tabulka
Strana_2 = fondy.sheets(2) Rem databáze
Strana_3 = fondy.sheets(3) Rem pomocné proměnné
end sub

sub Vloz_novy_radek_pro_zaznam
rem---
dim last_insert as object
dim inits as object

inits = Strana_3.getCellByPosition(0,0)
last_insert = Strana_3.getCellByPosition(1,0)
if inits.value = 0 then
last_insert.value = 36
inits.value = 1
else
strana_1.rows.insertByIndex(last_insert.Value,1)
last_insert.Value = last_insert.Value + 1
endif
end sub
user avatar Martin
Odpovědět
Re:Malá makra v OpenOffice.org
25. 02. 2015, 07:20:57
Děkuju, vyzkouším to - příště už půjdu na normální diskuzi, chtěl jsem jen udržet linii.
jsem v tom úplný zajíc, vařím z vody. V tabulkách je na začátku ještě jeden list, který v makru nepoužívám, ale nechci ho zahodit, proto je posunuté číslování listů (pracuju s listy 2-4). První proceduru jsem měl ukončenou, jen jsem to špatně zkopíroval (blbá chyba). Ale nerozumím, proč neviditelné proměnné, když jsem tam deklaraci měl. A už vůbec nerozumím poznámce chybné jméno - které? Asi se z toho zblázním. Ale děkuju za trpělivost. Martin
user avatar Martin
Odpovědět
Re:Malá makra v OpenOffice.org
25. 02. 2015, 10:13:13
Díky, ale furt to hlásí totéž, nevim, co dál...
Martin
user avatar lp.
Odpovědět
Malá makra v OpenOffice.org
25. 02. 2015, 09:50:25
proměnné deklarované v jedné proceduře nejsou viditelné ze druhé.

last insert nebo last_insert?
user avatar Martin
Odpovědět
Re:Malá makra v OpenOffice.org
25. 02. 2015, 10:22:56
Last_insert už jsem opravil, překopíroval jsem celé opravené makro a staré vymazal, pro viditelnost jsem proměnné původně deklaroval jako STATIC, aby byly vidět kompletně (nemají být PUBLIC ? - stejně mi je to zakazovalo jako nepřípustné); deklaraci proměnných jsem zkoušel přímo v proceduře Vloz_novy_radek_pro_zaznam, výsledek stejný. Nejhorší je, že už to dřív běželo, řádek se vkládal, pak jsem přidal sekvenci IF... tam se to celý seklo a konec, nejde to ani zjednodušený po REMování celý IF sekvence. Pak jsem to celý rozhodil a původní zápis už nemám.
Martin

Přidat názor

 

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