Seite 1 von 1
Cursorposition in Variable speichern
Verfasst: Do, 08.01.2004 14:01
von Loxlay
Hallo Zusammen,
ich möchter gerne in einem Makro für OO Calc immer in der Spalte "C" in der Zeile etwas eintragen, wo sich der Cursor gerade im im Sheet befindet.
Dabei kann der Cursor natürlich in einer beliebigen Spalte stehen, da mich hier nur die Zeile interessiert.
Dazu brauche ich irgendwie die Zeilenposition des Cursors, aber wie komme ich in meinem Makro an diese ?
Verfasst: Do, 08.01.2004 14:23
von openmind
Hinwiese siehe Code:
Code: Alles auswählen
Sub selektierteZellen
Dim calcDokument as Object
Dim selektion as Object
' aktuelles Dokument holen
calcDokument = ThisComponent
' aktuelle Selektion holen
selektion = calcDokument.getCurrentSelection()
' Selektion kann null(?), eine einzelne Zelle,
' ein einzelner oder mehrere Zellbereiche sein
If IsNull( selektion ) then
' keine Selektion (überhaupt möglich? wie?)
MsgBox "Keine Selektion"
Elseif selektion.supportsService( _
"com.sun.star.sheet.SheetCell" ) then
' einzelne Zelle selektiert
MsgBox "Einzelne Zelle selektiert"
Elseif selektion.supportsService( _
"com.sun.star.sheet.SheetCellRange" ) then
' einzelner Zellbereich selektiert
MsgBox "Einzelner Zellbereich selektiert"
Elseif selektion.supportsService( _
"com.sun.star.sheet.SheetCellRanges" ) then
' mehrere Zellbereiche selektiert
MsgBox "Mehrere Zellbereiche selektiert"
End If
End Sub
Verfasst: Do, 08.01.2004 16:24
von Loxlay
Danke für deine schnelle Antwort, aber mein Problem ist damit immer noch nicht gelößt.
Ich möchte ja wissen, in welcher Zelle der Cursor gerade ist also ob er in A6 oder D4 oder B2 usw. ist.
Verfasst: Do, 08.01.2004 17:00
von Toxitom
Hallo Loxlay,
versuchs mit dem Code:
Code: Alles auswählen
sub getCellPosition
oDoc=thisComponent
' aktive Zelle
oCelle=oDoc.getCurrentSelection().getCellAddress()
' aktives Tabellenblatt
oSheet=oDoc.sheets(oCelle.Sheet)
' aktuelle Zeile, Index
oRow=oCelle.Row
' aktuelle Spalte, Index
oColumn=oCelle.column
end sub
Das liefert dir den Index der aktuellen Zelle, aber denk dran: Indices beginnen bei 0!
Gruss
Thomas
Verfasst: Do, 08.01.2004 18:07
von openmind
openmind hat geschrieben:Hinwiese siehe Code:
Code: Alles auswählen
Sub selektierteZellen
Dim calcDokument as Object
Dim selektion as Object
calcDokument = ThisComponent
selektion = calcDokument.getCurrentSelection()
If selektion.supportsService( _
"com.sun.star.sheet.SheetCell" ) then
' !!!!!!!
' selektion = zelle
' !!!!!!!!!!!!!!!!!!
selektion.Text = "ich bin hier"
End If
End Sub