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
Jörg