🍀 Das LibreOffice Forum braucht HEUTE Ihre Hilfe! 🍀
❤️ Spenden Sie jetzt und sichern Sie die Zukunft unseres LibreOffice-Forums ❤️
Ihre Spende hilft, die Community offen, werbefrei (bei Registrierung) und lebendig zu halten. Vielen lieben Dank!

🙏 DANKE >> << DANKE 🙏

>> Das LibreOffice-Forum lebt von Ihnen – und von vielen Experten, die freiwillig und kostenlos ihr Wissen teilen.<<
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

Makro-Befehlsliste

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
Jörg
! Supporter - Spende !
Beiträge: 33
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
! Supporter - Spende !
Beiträge: 33
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:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das laufende.
Einfach per Kreditkarte oder PayPal. Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.



❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten