Komentáře Malá makra v OpenOffice.org

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
 
 
woo jaw demo hz