🙏 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. 🤗

Makro-Befehlsliste

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
Jörg
Beiträge: 15
Registriert: So 11. Jul 2021, 13:33

Makro-Befehlsliste

Beitrag von Jörg » So 31. Okt 2021, 20:48

Hallo,

ich habe gerade meinen ersten Makro für Calc geschrieben. Eine Liste der
Dispatcher-Befehle habe ich im Netz gefunden, aber keine für die "anderen" wie
z. B. getCurrentSelection() oder getType(). Weiß jemand, wo eine solche zu
finden ist?
Meine folgenden Fragen ergeben sich nur, weil ich bei der ersten nicht weiter-
kam. Ich suche nämlich noch nach
- einem Ersatz für den Dispatcher-Befehl "GoUp"
- einem Befehl, mit dem ich eine bestimmte Zelle zur aktiven mache (Mausklickersatz)
GELÖST: ThisComponent.CurrentController.Select(oStartzelle)
- einem Befehl, mit dem ich die Position einer Zelle abfragen kann.
GELÖST: If oZelle.CellAddress.Row()=0 Then

Der Makro macht nichts weiteres, als von einer beliebigen Zelle aus in deren
Spalte nach oben zu wandern, bis er auf eine nicht-leere Zelle trifft. Deren
Wert wird ausgelesen und in die Startzelle eingetragen, die dann auch wieder den
Fokus/Rahmen erhalten soll.

Code: Alles auswählen

Sub InsertUpperCell
rem define variables
dim document as object, oStartzelle as object, oZelle as Object

rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

oStartzelle = thisComponent.getCurrentSelection()

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())
oZelle = thisComponent.getCurrentSelection()

while (oZelle.value=0 and clng(oZelle.string)=0) or oZelle.getType()=0
rem Pseudocode:  if oZelle.getRow()=1 then
rem    exit Sub
rem  end if
  dispatcher.executeDispatch(document, ".uno:GoUp", "", 0, args1())
  oZelle = thisComponent.getCurrentSelection()
wEnd

oStartzelle.value = oZelle.value
rem Pseudocode: thisComponent.setCurrentSelection(oStartzelle) 

end sub
Dank und Gruß
Jörg

craig
* LO-Experte *
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Makro-Befehlsliste

Beitrag von craig » So 31. Okt 2021, 23:59

Hallo Jörg,

hier habe ich einiges beschrieben, bzw. Informationquellen angegeben:
viewtopic.php?t=32190
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

Jörg
Beiträge: 15
Registriert: So 11. Jul 2021, 13:33

Re: Makro-Befehlsliste

Beitrag von Jörg » Mo 8. Nov 2021, 10:39

Hallo Craig,

erst gestern bin ich dazu gekommen, mir Deine Links anzugucken. Deswegen mein etwas später, aber nicht weniger herzlicher Dank.

Alles Gute

Jörg


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