Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 11. 3. 2019 19:33:02

liska vaclav
Člen
Registrace: 11. 2. 2005
Příspěvků: 19

Makra libreoffice 6.2

dobrý večer, mám pod Ubuntu 16.04 libreoffice calc 6.2 ( původněto bylo  6.1.5). Nahrát makro mi  jde , normálně se zapíše. Pokud chci si ho přehrát,( spustit makro ) tak se zavře celý Libreoffice. Ještě jsem zjistil, že v nouzi lze přehrát marko : makro-správce maker - vybrat makro  a dát spustit. Nevím zda jsem něco někde nenastavil blbě. Díky za odpověď. Vašek

Offline

#2 11. 3. 2019 19:59:26

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,931

Re: Makra libreoffice 6.2

Podívejte se jak to makro vypadá. Umne to normálně chodí jen to breptá při prvém spuštění o Javě ale pak to jde spustit. Možná to bez Javy blbne - i když to chodí i bez ní. Makro normálně otevřete a podívejte se co tam je nahráno. Když tak to nakopírujte sem. Ale když lze zavolat, pak existuje a mělo by jít spustit. Já to testoval pod W7, ale v tom by neměl být rozdíl. Může být nastaven jen nějaký firewall ale na Linuxu to není potřeba.


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 12. 3. 2019 10:06:52

liska vaclav
Člen
Registrace: 11. 2. 2005
Příspěvků: 19

Re: Makra libreoffice 6.2

zde je zkopírované vše co mám v makrech. datum se nedá vůbec spustit ani přes správce maker. Kolo jde spustit jen přes správce maker. Zkoušel vše v makrech odstranit, nepomohlo to. nyní jak klepnu na ikonu spustit makro, hned se zavře celý program libre.






REM  *****  BASIC  *****

Sub Main

End Sub
REM  *****  BASIC  *****

Sub ZapisDatum 'zapise datum zadane datumovym polem do bunky s kurzorem
dim oDoc, oSelect  as object
dim Result, shtname, DatPole as string, sht as integer
DatPole = "datum1" ' nazev ve vlastnostech datumoveho pole musi souhlasit
oDoc = ThisComponent 
oSelect=oDoc.CurrentSelection.getRangeAddress
'oBrowser(oDoc.CurrentSelection.getRangeAddress)
sht=oSelect.Sheet ' index listu s kurzorem
shtname=oDoc.sheets(sht).name 'jmeno listu
oDatum = oDoc.Sheets(sht).DrawPage.Forms(shtname).getByName(DatPole) ' odkaz na datumove pole
'oDatum.HelpText="Zadejte nebo vyberte datum které bude vloženo na místo kurzoru."
Result= oDatum.text
On Local Error GoTo NODOCUMENTTYPE ' ignoruje chyby - např nesmyslne zadane datum
' zapsat do bunky na ktere je kurzor.
if result <> "" then
  oDoc.sheets(sht).getCellByPosition(oSelect.StartColumn,oSelect.StartRow).Value = dateValue(Result)
else
  oDoc.sheets(sht).getCellByPosition(oSelect.StartColumn,oSelect.StartRow).string = ""
end if
exit sub
NODOCUMENTTYPE:
beep
End Sub




sub kolo
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 = "StringName"
args1(0).Value = "100"

dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$E$7"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "StringName"
args3(0).Value = "50"

dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args3())

rem ----------------------------------------------------------------------
dim args4(1) as new com.sun.star.beans.PropertyValue
args4(0).Name = "By"
args4(0).Value = 1
args4(1).Name = "Sel"
args4(1).Value = false

dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args4())


end sub

Offline

#4 12. 3. 2019 10:24:55

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,931

Re: Makra libreoffice 6.2

Problém je asi v makru ZapisDatum - konkrétně zde :

oDatum = oDoc.Sheets(sht).DrawPage.Forms(shtname).getByName(DatPole)

Správně je to takto :

oDatum = oDoc.Sheets(sht).DrawPage.Forms(shtname).getByName("DatPole")

     Sice je to chyba která by měla vrátit chybové hlášení, ale to je zřejmě nastavením. Musel bych se podívat kde se to dá navolit. Otestujte zda makro bude zlobit i po opravě.


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#5 12. 3. 2019 11:20:22

liska vaclav
Člen
Registrace: 11. 2. 2005
Příspěvků: 19

Re: Makra libreoffice 6.2

Můj laický pohled je někde v programu. jak dám spustit makro aniž bych vybral které , zavře se celý program. Pod win10 mě to také chodí. Nevím , možná celý problém byl v přechodu na Ubuntu16, a pak se mi podařilo naisntalovat libre jak 6.15, tak libre 6.2. Tyto dva programy jsem odinstaloval a opět jen nainstaloval libre 6.2. Díky za Vaši trpělivost. Možná, že někdo má s tímto už zkušenosti. Vašek

Offline

#6 12. 3. 2019 12:37:15

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,931

Re: Makra libreoffice 6.2

To je divné. Raději upřesním, že musíte postavit povolení maker na střední stupeň, vybrat adresář který má povoleno makra spouštět (po provolbě uložit) a pak makra spustit.


Makro "kolo" je v pořádku, a to datum po opravě také. Jen musíte mít v sešitě datumové pole (ovládací prvek přejmenovaný na "DatPole" originálně je tam "Datumové pole") takže takhle se to musí upravit.


Ještě může existovat souběh maker v názvu a to původní obsahuje něco jako Doc.Close. Také je otázkou kde máte makra zavedená - zda v nadřazení knihovně "Moje makra standard", nebo v lokolním sešitě "Standard".


Vím, že se mi něco podobného také stávalo, ale bylo to ve spojitosti s řadou LO 5.X.X a s deklarací "Option Explicid", ale verze 6.1.5. ani 6.2 tohle už nedělá. Já mám stroj s Ubuntu odstavený tak to neumím posoudit, ale myslím že v tom chyba nebude.

Editoval neutr (12. 3. 2019 12:38:49)


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#7 13. 3. 2019 09:07:57

liska vaclav
Člen
Registrace: 11. 2. 2005
Příspěvků: 19

Re: Makra libreoffice 6.2

Mám Libreoffice i pod win10 a tam to pracuje bez problému. Mám na jednom PC jak win10 tak ubuntu. povolení maker mám na střední stupeň.Knihovna - moje makra standart. Ještě jsem nyní zjistil že při zápisu  jdou psát číslice(číselná klávesnice), ale  text až když použiji myš. Dle mého je chyba někde v programu anebo přímo v ubuntu. Makro lze spustit ze správce maker. Asi to nechám být. Díky

Offline

#8 19. 5. 2019 13:45:59

barevnej
Člen
Registrace: 6. 8. 2015
Příspěvků: 36

Re: Makra libreoffice 6.2

To mě na pracovních počítačích makra v 6.2 pustit šli ale pak procesor na plno a nikdy se nedokončilo. Vrátil jsem se zpět na 6.1.x a vše běhá tak jak má. Počkám na stabilní verzi a pak to zkusím znova.

Offline

Zápatí