Hallo Jenske,
Ik heb vroeger aardig wat zitten werken met macro's in Excel en Word. Ik ben ook geen programmeur, hoor. Ik heb ook wel eens gekeken naar het macrogebeuren in LO. Dat is wel wat minder geraffineerd, maar zo'n eenvoudig macrootje is goed te doen.
Ik heb het even geprobeerd en heb hem nu onder functietoets F3 draaien.
Plan:
installeer de standaard jre (Java Runtime Engine)
Zet het maken van macro's aan in LO Calc: Extra > Opties > LibreOffice > Geavanceerd
Neem hem op door het domweg te doen in je werkblad met pijltje omhoog, Ctr+C, pijltje naar beneden, Ctrl+V en dan macro stoppen en opslaan (niet als Main, maar als nieuwe module)
Zet de macro tenslotte onder een toets via Opties > Aanpassen
Dat is het zo in hoofdlijnen. Je zal gegarandeerd een paar keer moeten puzzelen voor het echt werkt, maar dat is deels juist de lol van dit werk.
Zet hem op!
groet,
Just
Puur voor de wetenschap: hier is de code die ik via de macro-recorder gebakken heb. Dat hoef je dus niet zelf te verzinnen, dat doet die macro-recorder voor je. Jij doet het alleen "voor" in je werkblad! Je kan dit soort stukken code wel weer combineren tot grotere macro's, maar zover ben ik niet gegaan. Microsoft heeft Visual Basic als taal van de macro. LO gebruikt Basic, een al bestaande programmeertaal als ik het wel heb.. Leuk om allemaal te zien gebeuren.
Hier is de code:
REM ***** BASIC *****
Sub Main
End Sub
sub celup
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(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "By"
args1(0).Value = 1
args1(1).Name = "Sel"
args1(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoUp", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "By"
args3(0).Value = 1
args3(1).Name = "Sel"
args3(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args3())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
end sub
Edit: code tags