[gelöst]Cursor über Makro positionieren

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

dinner4one
**
Beiträge: 32
Registriert: Mo, 14.12.2020 10:02

[gelöst]Cursor über Makro positionieren

Beitrag von dinner4one »

Hallo,

wie platziere ich den Cursor in Calc über ein Basic Makro und wo gibt es dazu Dokumentationen.

Danke

hier mal wo ich bin:

sub test_CursorPos (Pos as string)
dim Mappe as object
dim Blatt as object
dim Bereich as object
dim BlattName as string

Mappe = ThisComponent
BlattName = Mappe.CurrentController.ActiveSheet.Name
Blatt = Mappe.Sheets.getByName(BlattName)
Bereich = Blatt.getCellRangeByName(Pos)

'ab hier ist mein latein am ende :)
Bereich.GotoCell ??
Bereich activate ??

end sub
Zuletzt geändert von dinner4one am So, 14.03.2021 12:08, insgesamt 1-mal geändert.
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Cursor über Makro positionieren

Beitrag von mikeleb »

Hallo,
Ich verstehe noch nicht so richtig, was du vorhast.
Bereich activate
erinnert mich an meine Denkweise von MSOffice VBA.
In Calc läuftdas etwas anders. Du musst keinen Bereich aktivieren, um mit ihm etwas machen zu können.
Also: Was hast du vor?
Gruß,
mikeleb
dinner4one
**
Beiträge: 32
Registriert: Mo, 14.12.2020 10:02

Re: Cursor über Makro positionieren

Beitrag von dinner4one »

@mikeleb

Fragestellung im Betreff, stimmt

@gast

danke guter Link
dinner4one
**
Beiträge: 32
Registriert: Mo, 14.12.2020 10:02

Re: Cursor über Makro positionieren

Beitrag von dinner4one »

...so gehts:

Code: Alles auswählen

'###############################################################
function _BlattName as string
	dim Mappe    as object
	dim Methoden as object
	
	Mappe      = ThisComponent
	Methoden   = Mappe.CurrentController
	_BlattName = Methoden.ActiveSheet.Name
end function

'###############################################################
sub _CursorPos (Pos as string)
	dim Mappe    as object
	dim Methoden as object
	dim Blatt    as object
	dim Bereich  as object

	Mappe     = ThisComponent
	Methoden  = Mappe.CurrentController
	Blatt     = Mappe.Sheets.getByName(_BlattName)
	Bereich   = Blatt.getCellRangeByName(Pos)

	Methoden.Select(Bereich)
end sub
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Cursor über Makro positionieren

Beitrag von Stephan »

...so gehts:
das selektiert einen Zellreich, aber positioniert keinen Cursor, wonach doch eigentlich gefragt war.

"mikeleb" der sich genau an dieser Stelle wohl unsicher (wie ich auch) und der augenscheinliche Grund das "mikeleb" fragte ist das das Selektieren eines Zellbereichs leicht machbar ist, das Positionieren des Cursors in Calc hingegen nicht unbedingt.
Da man Letzteres auch kaum braucht habe ich dafür nicht einmal einen 'nativen' Code greifbar, sondern würde mit dispatcher arbeiten. Das Folgende positioniert den sichtbaren Cursor ans Ende des Textes in Zelle A1 des aktiven Tabellenblatts:

Code: Alles auswählen

Sub Main
	akt_blatt = ThisComponent.CurrentController.ActiveSheet
	akt_zelle = akt_blatt.getCellRangeByName("A1")
	ThisComponent.CurrentController.Select(akt_zelle)
	document   = ThisComponent.CurrentController.Frame
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
	dispatcher.executeDispatch(document, ".uno:SetInputMode", "", 0, Array())
End Sub
Bei Writer ist das Arbeiten mit dem Cursor hingegen etwas Tagtägliches, weswegen Du reichlich Beispiele dazu im Netz findest, z.B.:
http://www.dannenhoefer.de/faqstarbasic/cursor.html
http://www.dannenhoefer.de/faqstarbasic ... sorum.html



Gruß
Stephan
Antworten