Tak takhle by to šlo, jen uložit a spojit s klávesovou zkratkou. Je to kompletně přepsané makro p. Pastierika na přepis čísla slovy, jen s minimální úpravou na formát čísla.
Nedostatek - formát čísla musíte provést před desetinou čárkou (rozumějte kurzor musí být ihned za číslem a před desetinou čárkou).
Přesto mi přijde tento postup zbytečně komplikovaný a jen jsem si to uložil za domácí úkol ;o). Možná, by ale stálo za úvahu mít možnost takového formátování čísel v některém z rozšíření? Pak by se upravoval již napsaný text zpětně v celém dokumentu.
sub formatuj_cislo
dim kurzor, doc as object
dim cislo as long
dim scislo as string
doc=ThisComponent.CurrentController
kurzor=doc.getViewCursor() ' Aktuálna pozícia kurzora
scislo=posledne_slovo(kurzor)
if trim(str(val(scislo)))=scislo then
scislo=format(scislo,"###,###,###,###,###,###")
kurzor.SetString(scislo) ' označené číslo prepíšeme novým formátem
end if
kurzor.goright(len(scislo),false) ' nakoniec odznačíme blok (zostal označený aj po vložení textu)
end sub
function posledne_slovo(kurzor as object) as string
' funkcia vráti posledne napísané slovo a zároveň ho označí do bloku
dim poms as string
dim slovo as boolean
dim OddelovaceSlov as string
OddelovaceSlov=" "+chr(&HA0)+chr(&H09)+chr(&H0A)+chr(&H0D)
OddelovaceSlov=OddelovaceSlov+"-/.,!?;…"
OddelovaceSlov=OddelovaceSlov+"()[]{}"
DesettinaCarka=","
poms=""
slovo=false
do while (not kurzor.isAtStartOfLine) and (not slovo)
' pokiaľ nie sme na začiatku riadku a nie sme ešte na začiatku slova
' tak sa presunieme o jeden znak doľava s tým, že označíme tento znak do bloku
kurzor.goleft(1,true)
' označené slovo si uložíme do pomocnej premennej
poms=kurzor.getstring
' ak sme našli oddeľovač slov, tak sme na začiatku slova
slovo=instr(OddelovaceSlov,left(poms,1))
loop
if slovo and (len(poms)>1) then
' ak sme boli na začiatku slova (a ak sme vôbec niečo označili)
' tak musíme tento oddeľujúci znak z nájdeného slova vylúčiť, t.j.
' vrátime sa o krok späť
kurzor.goright(1,true)
poms=kurzor.getstring
end if
posledne_slovo=poms
end function
Pastierik forever
Editoval sedlacekdan (8. 4. 2011 15:28:53)
Linux Mint 16 Petra - Apache OpenOffice 4.0.1
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É