🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

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

Alles zur Programmierung im LibreOffice.
Antworten
Rolf_V
Beiträge: 23
Registriert: Mi 2. Mär 2022, 19:09

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

Beitrag von Rolf_V » Sa 18. Nov 2023, 20:00

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.
Zuletzt geändert von Rolf_V am Sa 24. Feb 2024, 23:49, insgesamt 1-mal geändert.

Benutzeravatar
miesepeter
* LO-Experte *
Beiträge: 2136
Registriert: So 19. Dez 2010, 18:16
Wohnort: Bayern

Re: Anleitung für einfache Macro-Programmierung

Beitrag von miesepeter » So 19. Nov 2023, 11:00



An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten