Macro pre libra office

Predstavte si že vaša práca je úprava vstupných dát v tabuľkovom zošite do podoby vhodnej na výstup. Keďže som študoval programovanie a daná činnosť vlastne prevažne boli opakované úkony len na rôznych položkách, tak som si povedal niečo ako "Neštudoval som azda na univerzite aby som sa trápil s niečím takýmto?"
Keďže mi to nedalo, strávil som dva/ tri (možno dlhšie) dni snahou oboznámiť sa jazykom ktorý používal Libra office na vytvorenie makra. A rázom sa daná operácia s prepisovaním (úpravou) dát do vhodného formátu skrátila pre danú dvojicu do jedného kliknutia. Vlastne dochádza k interakcií dvoch riadkov a presunu údajov z jedného.
Neskôr som kód trošku vylepšil a je zobrazený nižšie.
[code]
REM ***** BASIC *****
Sub Remax
Dim oDoc as Object
Dim oSel as Object
Dim oCellAddr as Object
Dim oActCol as Long, oActRow as Long
Dim oShtNo as Integer
Dim oDisp
Dim addRow as Integer
Dim udaja, udajb, udajc as String
Dim udaj4, udaj5, udaj6 as String
Dim cislo1, cislo2, cislo3 as Integer
Dim cislo4, cislo5, cislo6 as Integer
Dim cislo7, cislo8, cislo9
Dim pa as String
Dim aSheet as Object
oDoc = ThisComponent
oSel = oDoc.CurrentController.getSelection()
oCellAddr = oSel.getCellAddress()
oActCol = oCellAddr.Column
oActRow = oCellAddr.Row
oShtNo = oCellAddr.Sheet
addRow = oActRow -1
pa = " "
If addRow < 0 Then
MsgBox "Metoda nefunguje na prvom riadku. Makro sa pokusa dostat k udaju o riadok
vysie, ktory neexsistuje."
End If
udaja = oDoc.Sheets(0).getCellByPosition(1,addRow)
udajb = oDoc.Sheets(0).getCellByPosition(1,oActRow)
udajc = udaja.String & " , " & udajb.String
oDoc.Sheets(0).getCellByPosition(1,oActRow).string = udajc
udaj4 = oDoc.Sheets(0).getCellByPosition(2,addRow)
udaj5 = oDoc.Sheets(0).getCellByPosition(2,oActRow)
udaj6 = udaj4.String & " , " & udaj5.String
oDoc.Sheets(0).getCellByPosition(2,oActRow).string = udaj6
cislo1 = oDoc.Sheets(0).getCellByPosition(11,addRow)
cislo2 = oDoc.Sheets(0).getCellByPosition(11,oActRow)
cislo3 = cislo1.value + cislo2.value
oDoc.Sheets(0).getCellByPosition(11,oActRow).value = cislo3
cislo4 = oDoc.Sheets(0).getCellByPosition(12,addRow)
cislo5 = oDoc.Sheets(0).getCellByPosition(12,oActRow)
cislo6 = cislo4.value + cislo5.value
oDoc.Sheets(0).getCellByPosition(12,oActRow).value = cislo6
cislo7 = oDoc.Sheets(0).getCellByPosition(17,addRow)
cislo8 = oDoc.Sheets(0).getCellByPosition(17,oActRow)
cislo9 = cislo7.value + cislo8.value
oDoc.Sheets(0).getCellByPosition(17,oActRow).value = cislo9
REM Print udajc, pa,udaj6, pa, cislo3, pa, cislo6, pa, cislo9
MsgBox "Kod zasielok: "+Chr$(13)+ udajc +Chr$(13)+ "Kod zasielok 2: "+Chr$(13)+ udaj6
+Chr$(13)+ "Pocet: "+ cislo3 +" Vaha (g): "+ cislo6 +" Cena(?): "+ cislo9
End Sub
[/code]