Seite 1 von 1

Anleitung für einfache Macro-Programmierung [GELÖST]

Verfasst: Sa 18. Nov 2023, 20:00
von Rolf_V
Ich bin eine absoluter Neuling in Bezug auf die Macro-Programmierung für Libreoffice-Calc.
Nun habe ich ein kurzes Macro gefunden und angewendet. Wenn ich das gleiche mit dem Macro-Recorder aufzeichne, kommt ein sehr sehr langer Code heraus. Offensichtlich gibt es 2 verschiedene Sprachen.
Beispiel für die Kurzform:

Code: Alles auswählen

sub ZellenInTabellen
' Dieses Makro in einer geöffnetten Tabelle starten
myDoc = thisComponent
mySheet = myDoc.sheets(0)

mycell = mysheet.getCellByPosition(0,0)
mycell.string = "Hallo Welt"

mycell = mysheet.getCellRangeByName("$C$1")
mycell.string = "Hallo Welt"

end sub
Beispiel für die Recorderform:

Code: Alles auswählen

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

Sub Main

End Sub


sub Macro1
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 = "ToPoint"
args1(0).Value = "$A$1"

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

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = "Hallo Welt"

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

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())

rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "$C$1"

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

rem ----------------------------------------------------------------------
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "StringName"
args5(0).Value = "Hallo Welt"

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

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())


end sub
Ich würde natürlich die Kurzform bevorzugen. Wo gibt es ein komplettes und übersichtliches Verzeichnis aller Befehle für die Kurzform ?
Danke im Voraus für Eure Hilfe.

Re: Anleitung für einfache Macro-Programmierung

Verfasst: So 19. Nov 2023, 11:00
von miesepeter